learn-test 2.0.0.rc1 → 2.0.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/learn_test/runner.rb +1 -1
- data/lib/learn_test/strategies/karma.rb +28 -19
- data/lib/learn_test/strategies/protractor.rb +37 -7
- data/lib/learn_test/strategy.rb +16 -0
- data/lib/learn_test/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7a9b83439ba2bcc56e12b97b75f4b70a14ce9f0
|
4
|
+
data.tar.gz: f2d82adedacd4eda7ddb905eb37c08b568cbc44d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0b30f556c64e9032a497bba4010b36024d58576777acf3f6383cf9398187f0beee0d450cd11ca1b4626bee085b022dab7744b6baf2eb5cd23d3506d2cb086af
|
7
|
+
data.tar.gz: d6ea1db7591ad07dce13e4a0db2124d346c9b49b3ad72a3e255ac0bfb8ab327bfdc971fbbde222643529c9c206843d2deaa821c6ed9239dbadf77f9a2ccfde97
|
data/lib/learn_test/runner.rb
CHANGED
@@ -15,25 +15,11 @@ module LearnTest
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def run
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
while err = stderr.gets do
|
26
|
-
if err.include?('Cannot find local Karma!')
|
27
|
-
@missing_karma = true
|
28
|
-
end
|
29
|
-
puts err
|
30
|
-
end
|
31
|
-
|
32
|
-
if wait_thr.value.exitstatus != 0
|
33
|
-
if @missing_karma
|
34
|
-
die("You appear to be missing karma in your local node modules. Try running `npm install`.\nIf the issue persists, check if karma is specified as a dependency in the package.json.")
|
35
|
-
end
|
36
|
-
end
|
18
|
+
run_karma
|
19
|
+
if @missing_karma
|
20
|
+
puts "Installing local karma dependencies...".green
|
21
|
+
run_install('npm install')
|
22
|
+
run_karma
|
37
23
|
end
|
38
24
|
end
|
39
25
|
|
@@ -62,6 +48,29 @@ module LearnTest
|
|
62
48
|
def cleanup
|
63
49
|
FileUtils.rm('.results.json') if File.exist?('.results.json')
|
64
50
|
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def run_karma
|
55
|
+
karma_config = LearnTest::FileFinder.location_to_dir('strategies/karma/karma.conf.js')
|
56
|
+
Open3.popen3("karma start #{karma_config}") do |stdin, stdout, stderr, wait_thr|
|
57
|
+
while out = stdout.gets do
|
58
|
+
puts out
|
59
|
+
end
|
60
|
+
|
61
|
+
while err = stderr.gets do
|
62
|
+
if err.include?('Cannot find local Karma!')
|
63
|
+
die_missing_local_karma if @missing_karma
|
64
|
+
@missing_karma = true
|
65
|
+
end
|
66
|
+
puts err
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def die_missing_local_karma
|
72
|
+
die("You appear to be missing karma in your local node modules. Try running `npm install`.\nIf the issue persists, make sure karma is specified as a dependency in the package.json")
|
73
|
+
end
|
65
74
|
end
|
66
75
|
end
|
67
76
|
end
|
@@ -17,6 +17,23 @@ module LearnTest
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def run
|
20
|
+
if !selenium_running?
|
21
|
+
stdin, stdout, stderr, wait_thr = Open3.popen3('webdriver-manager start')
|
22
|
+
@pid = wait_thr.pid
|
23
|
+
|
24
|
+
@server_started = false
|
25
|
+
|
26
|
+
while !@server_started && line = stderr.gets do
|
27
|
+
puts line
|
28
|
+
if line.include?('Selenium Server is up and running')
|
29
|
+
@server_started = true
|
30
|
+
stdin.close
|
31
|
+
stdout.close
|
32
|
+
stderr.close
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
20
37
|
Open3.popen3('protractor conf.js --resultJsonOutputFile .results.json') do |stdin, stdout, stderr, wait_thr|
|
21
38
|
while line = stdout.gets do
|
22
39
|
if line.include?('Error: Cannot find module')
|
@@ -26,22 +43,18 @@ module LearnTest
|
|
26
43
|
end
|
27
44
|
|
28
45
|
while stderr_line = stderr.gets do
|
29
|
-
if stderr_line.include?('ECONNREFUSED')
|
30
|
-
@webdriver_not_running = true
|
31
|
-
end
|
32
46
|
puts stderr_line
|
33
47
|
end
|
34
48
|
|
35
49
|
if wait_thr.value.exitstatus != 0
|
36
|
-
if @webdriver_not_running
|
37
|
-
die('Webdriver manager does not appear to be running. Run `webdriver-manager start` to start it.')
|
38
|
-
end
|
39
|
-
|
40
50
|
if @modules_missing
|
41
51
|
die("You appear to be missing npm dependencies. Try running `npm install`\nIf the issue persists, check the package.json")
|
42
52
|
end
|
43
53
|
end
|
44
54
|
end
|
55
|
+
|
56
|
+
safe_kill(@pid)
|
57
|
+
safe_kill(@selenium_pid) if selenium_running?
|
45
58
|
end
|
46
59
|
|
47
60
|
def output
|
@@ -91,6 +104,23 @@ module LearnTest
|
|
91
104
|
count += test[:duration]
|
92
105
|
end
|
93
106
|
end
|
107
|
+
|
108
|
+
def safe_kill(pid)
|
109
|
+
begin
|
110
|
+
Process.kill('HUP', pid)
|
111
|
+
rescue
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def selenium_running?
|
116
|
+
process = `ps aux | grep selenium`.split("\n").detect{ |p| p.include?('chromedriver') }
|
117
|
+
if process
|
118
|
+
@selenium_pid = process.split[1].to_i
|
119
|
+
return true
|
120
|
+
end
|
121
|
+
return false
|
122
|
+
end
|
123
|
+
|
94
124
|
end
|
95
125
|
end
|
96
126
|
end
|
data/lib/learn_test/strategy.rb
CHANGED
@@ -52,5 +52,21 @@ module LearnTest
|
|
52
52
|
puts message.red
|
53
53
|
exit
|
54
54
|
end
|
55
|
+
|
56
|
+
def run_install(command)
|
57
|
+
Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
|
58
|
+
while out = stdout.gets do
|
59
|
+
puts out
|
60
|
+
end
|
61
|
+
|
62
|
+
while err = stderr.gets do
|
63
|
+
puts err
|
64
|
+
end
|
65
|
+
|
66
|
+
if wait_thr.value.exitstatus != 0
|
67
|
+
die("There was an error running #{command}")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
55
71
|
end
|
56
72
|
end
|
data/lib/learn_test/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flatiron School
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|