cucumber_analytics 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -17
- data/History.rdoc +7 -1
- data/LICENSE +21 -21
- data/README.rdoc +1 -1
- data/Rakefile +2 -2
- data/cucumber_analytics.gemspec +0 -2
- data/features/step_definitions/background_steps.rb +4 -4
- data/features/step_definitions/directory_steps.rb +2 -2
- data/features/step_definitions/feature_steps.rb +11 -11
- data/features/step_definitions/file_steps.rb +2 -2
- data/features/step_definitions/outline_steps.rb +4 -4
- data/features/step_definitions/test_steps.rb +7 -7
- data/features/step_definitions/world_steps.rb +15 -15
- data/features/support/env.rb +6 -12
- data/lib/cucumber_analytics/logging.rb +14 -2
- data/lib/cucumber_analytics/step.rb +9 -9
- data/lib/cucumber_analytics/version.rb +3 -3
- data/lib/cucumber_analytics.rb +0 -2
- metadata +2 -34
data/.gitignore
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
.bundle
|
4
|
-
.config
|
5
|
-
.yardoc
|
6
|
-
Gemfile.lock
|
7
|
-
InstalledFiles
|
8
|
-
_yardoc
|
9
|
-
coverage
|
10
|
-
doc/
|
11
|
-
lib/bundler/man
|
12
|
-
pkg
|
13
|
-
rdoc
|
14
|
-
spec/reports
|
15
|
-
test/tmp
|
16
|
-
test/version_tmp
|
17
|
-
tmp
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== Version 0.0.4 / 2012-12-13
|
2
|
+
|
3
|
+
* Removed an unintentional gem dependency
|
4
|
+
* Improved 1.8.7 compatibility.
|
5
|
+
|
6
|
+
|
1
7
|
=== Version 0.0.3 / 2012-11-10
|
2
8
|
|
3
9
|
* 'But' has been added to the list of recognized step keywords (formerly Given,
|
@@ -6,7 +12,7 @@ When,Then, And, and *)
|
|
6
12
|
properly takes into account an outline's example rows.
|
7
13
|
|
8
14
|
|
9
|
-
=== Version 0.0.2 / 2012-11-
|
15
|
+
=== Version 0.0.2 / 2012-11-01
|
10
16
|
|
11
17
|
* Bug fix: descriptions are no longer cut short due to the presence of keywords
|
12
18
|
|
data/LICENSE
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
Copyright (c) 2012 Eric Kessler
|
2
|
-
|
3
|
-
MIT License
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
1
|
+
Copyright (c) 2012 Eric Kessler
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
22
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -58,7 +58,7 @@ Now it's time to take a look around and see what we can see.
|
|
58
58
|
|
59
59
|
|
60
60
|
all_steps = world.steps_in(directory)
|
61
|
-
puts all_steps.collect{ |step| step.step_text(with_keywords
|
61
|
+
puts all_steps.collect{ |step| step.step_text(:with_keywords => false)}
|
62
62
|
#=> ["some step", "the user logs in", "the user will log in", "another step", "the user "Bob" logs in"]
|
63
63
|
|
64
64
|
So with a few simple commands we have discovered that there are five different
|
data/Rakefile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
require "bundler/gem_tasks"
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
data/cucumber_analytics.gemspec
CHANGED
@@ -3,7 +3,7 @@ Then /^the(?: feature "([^"]*)")? background is found to have the following prop
|
|
3
3
|
properties = properties.rows_hash
|
4
4
|
|
5
5
|
properties.each do |property, expected_value|
|
6
|
-
assert
|
6
|
+
assert expected_value == @parsed_files[file - 1].feature.background.send(property.to_sym).to_s
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
@@ -11,7 +11,7 @@ Then /^the(?: feature "([^"]*)")? background's descriptive lines are as follows:
|
|
11
11
|
file ||= 1
|
12
12
|
expected_description = lines.raw.flatten
|
13
13
|
|
14
|
-
assert
|
14
|
+
assert @parsed_files[file - 1].feature.background.description == expected_description
|
15
15
|
end
|
16
16
|
|
17
17
|
Then /^the(?: feature "([^"]*)")? background's steps(?: "([^"]*)" arguments)?(?: "([^"]*)" keywords)? are as follows:$/ do |file, arguments, keywords, steps|
|
@@ -37,7 +37,7 @@ Then /^the(?: feature "([^"]*)")? background's steps(?: "([^"]*)" arguments)?(?:
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
assert
|
40
|
+
assert actual_steps.flatten == steps
|
41
41
|
end
|
42
42
|
|
43
43
|
When /^step "([^"]*)" of the background (?:of feature "([^"]*)" )?has the following block:$/ do |step, file, block|
|
@@ -51,5 +51,5 @@ When /^step "([^"]*)" of the background (?:of feature "([^"]*)" )?has the follow
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
assert
|
54
|
+
assert @parsed_files[file - 1].feature.background.steps[step - 1].block == block
|
55
55
|
end
|
@@ -7,7 +7,7 @@ Then /^(?:the )?directory(?: "([^"]*)")? is found to have the following properti
|
|
7
7
|
expected_value.sub!('path_to', @default_file_directory)
|
8
8
|
end
|
9
9
|
|
10
|
-
assert
|
10
|
+
assert expected_value == @parsed_directories[directory - 1].send(property.to_sym).to_s
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -16,5 +16,5 @@ When /^(?:the )?directory(?: "([^"]*)")? feature files are as follows:$/ do |dir
|
|
16
16
|
|
17
17
|
actual_files = @parsed_directories[directory - 1].feature_files.collect { |file| file.name }
|
18
18
|
|
19
|
-
assert
|
19
|
+
assert actual_files.flatten.sort == files.raw.flatten.sort
|
20
20
|
end
|
@@ -3,28 +3,28 @@ Then /^(?:the )?feature(?: "([^"]*)")? is found to have the following properties
|
|
3
3
|
properties = properties.rows_hash
|
4
4
|
|
5
5
|
properties.each do |property, expected_value|
|
6
|
-
assert
|
6
|
+
assert expected_value == @parsed_files[file - 1].feature.send(property.to_sym).to_s
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
Then /^the descriptive lines of feature "([^"]*)" are as follows:$/ do |file, lines|
|
11
11
|
expected_description = lines.raw.flatten
|
12
12
|
|
13
|
-
assert
|
13
|
+
assert @parsed_files[file - 1].feature.description == expected_description
|
14
14
|
end
|
15
15
|
|
16
16
|
Then /^feature "([^"]*)" is found to have the following tags:$/ do |file, tags|
|
17
17
|
expected_tags = tags.raw.flatten
|
18
18
|
|
19
|
-
assert
|
19
|
+
assert @parsed_files[file - 1].feature.tags == expected_tags
|
20
20
|
end
|
21
21
|
|
22
22
|
Then /^feature "([^"]*)" has no descriptive lines$/ do |file|
|
23
|
-
assert
|
23
|
+
assert @parsed_files[file - 1].feature.description == []
|
24
24
|
end
|
25
25
|
|
26
26
|
Then /^feature "([^"]*)" has no tags$/ do |file|
|
27
|
-
assert
|
27
|
+
assert @parsed_files[file - 1].feature.tags == []
|
28
28
|
end
|
29
29
|
|
30
30
|
When /^(?:the )?feature(?: "([^"]*)")? scenarios are as follows:$/ do |file, scenarios|
|
@@ -32,7 +32,7 @@ When /^(?:the )?feature(?: "([^"]*)")? scenarios are as follows:$/ do |file, sce
|
|
32
32
|
|
33
33
|
actual_scenarios = @parsed_files[file - 1].feature.scenarios.collect { |scenario| scenario.name }
|
34
34
|
|
35
|
-
assert
|
35
|
+
assert actual_scenarios.flatten.sort == scenarios.raw.flatten.sort
|
36
36
|
end
|
37
37
|
|
38
38
|
When /^(?:the )?feature(?: "([^"]*)")? outlines are as follows:$/ do |file, outlines|
|
@@ -40,23 +40,23 @@ When /^(?:the )?feature(?: "([^"]*)")? outlines are as follows:$/ do |file, outl
|
|
40
40
|
|
41
41
|
actual_outlines = @parsed_files[file - 1].feature.outlines.collect { |outline| outline.name }
|
42
42
|
|
43
|
-
assert
|
43
|
+
assert actual_outlines.flatten.sort == outlines.raw.flatten.sort
|
44
44
|
end
|
45
45
|
|
46
46
|
When /^(?:the )?feature(?: "([^"]*)")? background is as follows:$/ do |file, background|
|
47
47
|
file ||= 1
|
48
48
|
|
49
|
-
assert
|
49
|
+
assert @parsed_files[file - 1].feature.background.name == background.raw.flatten.first
|
50
50
|
end
|
51
51
|
|
52
52
|
When /^feature "([^"]*)" has no scenarios$/ do |file|
|
53
|
-
assert
|
53
|
+
assert @parsed_files[file - 1].feature.scenarios == []
|
54
54
|
end
|
55
55
|
|
56
56
|
When /^feature "([^"]*)" has no outlines/ do |file|
|
57
|
-
assert
|
57
|
+
assert @parsed_files[file - 1].feature.outlines == []
|
58
58
|
end
|
59
59
|
|
60
60
|
When /^feature "([^"]*)" has no background/ do |file|
|
61
|
-
assert
|
61
|
+
assert @parsed_files[file - 1].feature.has_background? == false
|
62
62
|
end
|
@@ -7,12 +7,12 @@ Then /^(?:the )?file(?: "([^"]*)")? is found to have the following properties:$/
|
|
7
7
|
expected_value.sub!('path_to', @test_directory)
|
8
8
|
end
|
9
9
|
|
10
|
-
assert
|
10
|
+
assert expected_value == @parsed_files[file - 1].send(property.to_sym).to_s
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
When /^(?:the )?file(?: "([^"]*)")? features are as follows:$/ do |file, feature|
|
15
15
|
file ||= 1
|
16
16
|
|
17
|
-
assert
|
17
|
+
assert @parsed_files[file - 1].feature.name == feature.raw.flatten.first
|
18
18
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
Then /^(?:feature "([^"]*)" )?"([^"]*)" example "([^"]*)" has a "([^"]*)"$/ do |file, test, example, name|
|
2
2
|
file ||= 1
|
3
3
|
|
4
|
-
assert
|
4
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].name == name
|
5
5
|
end
|
6
6
|
|
7
7
|
When /^(?:feature "([^"]*)" )?"([^"]*)" example "([^"]*)" descriptive lines are as follows:$/ do |file, test, example, lines|
|
8
8
|
file ||= 1
|
9
9
|
lines = lines.raw.flatten.delete_if { |line| line == '' }
|
10
10
|
|
11
|
-
assert
|
11
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].description == lines
|
12
12
|
end
|
13
13
|
|
14
14
|
When /^(?:feature "([^"]*)" )?"([^"]*)" example "([^"]*)" tags are as follows:$/ do |file, test, example, tags|
|
15
15
|
file ||= 1
|
16
16
|
tags = tags.raw.flatten.delete_if { |line| line == '' }
|
17
17
|
|
18
|
-
assert
|
18
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tags == tags
|
19
19
|
end
|
20
20
|
|
21
21
|
When /^(?:feature "([^"]*)" )?"([^"]*)" example "([^"]*)" rows are as follows:$/ do |file, test, example, rows|
|
22
22
|
file ||= 1
|
23
23
|
rows = rows.raw.flatten
|
24
24
|
|
25
|
-
assert
|
25
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].rows == rows
|
26
26
|
end
|
@@ -5,7 +5,7 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? is found to have the
|
|
5
5
|
properties = properties.rows_hash
|
6
6
|
|
7
7
|
properties.each do |property, value|
|
8
|
-
assert
|
8
|
+
assert value == @parsed_files[file - 1].feature.tests[test - 1].send(property.to_sym).to_s
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -14,7 +14,7 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? descriptive lines are
|
|
14
14
|
test ||= 1
|
15
15
|
lines = lines.raw.flatten
|
16
16
|
|
17
|
-
assert
|
17
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].description == lines
|
18
18
|
end
|
19
19
|
|
20
20
|
Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? steps(?: "([^"]*)" arguments)?(?: "([^"]*)" keywords)? are as follows:$/ do |file, test, arguments, keywords, steps|
|
@@ -42,14 +42,14 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? steps(?: "([^"]*)" ar
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
assert
|
45
|
+
assert actual_steps.flatten == steps
|
46
46
|
end
|
47
47
|
|
48
48
|
Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? is found to have the following tags:$/ do |file, test, tags|
|
49
49
|
file ||= 1
|
50
50
|
test ||= 1
|
51
51
|
|
52
|
-
assert
|
52
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].tags == tags.raw.flatten
|
53
53
|
end
|
54
54
|
|
55
55
|
Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? step "([^"]*)" has the following block:$/ do |file, test, step, block|
|
@@ -64,19 +64,19 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? step "([^"]*)" has th
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
assert
|
67
|
+
assert @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block == block
|
68
68
|
end
|
69
69
|
|
70
70
|
Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? is equal to test "([^"]*)"$/ do |file, first_test, second_test|
|
71
71
|
file ||= 1
|
72
72
|
first_test ||= 1
|
73
73
|
|
74
|
-
assert
|
74
|
+
assert @parsed_files[file - 1].feature.tests[first_test - 1] == @parsed_files[file - 1].feature.tests[second_test - 1]
|
75
75
|
end
|
76
76
|
|
77
77
|
Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? is not equal to test "([^"]*)"$/ do |file, first_test, second_test|
|
78
78
|
file ||= 1
|
79
79
|
first_test ||= 1
|
80
80
|
|
81
|
-
assert
|
81
|
+
assert @parsed_files[file - 1].feature.tests[first_test - 1] != @parsed_files[file - 1].feature.tests[second_test - 1]
|
82
82
|
end
|
@@ -2,27 +2,27 @@ Then /^the tags collected from (?:feature "([^"]*)" )?test "([^"]*)" are as foll
|
|
2
2
|
file ||= 1
|
3
3
|
tags = tags.raw.flatten
|
4
4
|
|
5
|
-
assert
|
5
|
+
assert CucumberAnalytics::World.tags_in(@parsed_files[file - 1].feature.tests[test - 1]).sort == tags.sort
|
6
6
|
end
|
7
7
|
|
8
8
|
Then /^the tags collected from feature "([^"]*)" are as follows:$/ do |file, tags|
|
9
9
|
file ||= 1
|
10
10
|
tags = tags.raw.flatten
|
11
11
|
|
12
|
-
assert
|
12
|
+
assert CucumberAnalytics::World.tags_in(@parsed_files[file - 1].feature).sort == tags.sort
|
13
13
|
end
|
14
14
|
|
15
15
|
Then /^the tags collected from file "([^"]*)" are as follows:$/ do |file, tags|
|
16
16
|
file ||= 1
|
17
17
|
tags = tags.raw.flatten
|
18
18
|
|
19
|
-
assert
|
19
|
+
assert CucumberAnalytics::World.tags_in(@parsed_files[file - 1]).sort == tags.sort
|
20
20
|
end
|
21
21
|
|
22
22
|
Then /^the tags collected from directory are as follows:$/ do |tags|
|
23
23
|
tags = tags.raw.flatten
|
24
24
|
|
25
|
-
assert
|
25
|
+
assert CucumberAnalytics::World.tags_in(@parsed_directories.last).sort == tags.sort
|
26
26
|
end
|
27
27
|
|
28
28
|
Then /^the(?: "([^"]*)")? steps collected from feature "([^"]*)" background are as follows:$/ do |defined, file, steps|
|
@@ -39,7 +39,7 @@ Then /^the(?: "([^"]*)")? steps collected from feature "([^"]*)" background are
|
|
39
39
|
expected_steps = CucumberAnalytics::World.steps_in(container)
|
40
40
|
end
|
41
41
|
|
42
|
-
assert
|
42
|
+
assert expected_steps.collect { |step| step.step_text }.flatten.sort == steps.sort
|
43
43
|
end
|
44
44
|
|
45
45
|
Then /^the(?: "([^"]*)")? steps collected from feature "([^"]*)" test "([^"]*)" are as follows:$/ do |defined, file, test, steps|
|
@@ -56,7 +56,7 @@ Then /^the(?: "([^"]*)")? steps collected from feature "([^"]*)" test "([^"]*)"
|
|
56
56
|
expected_steps = CucumberAnalytics::World.steps_in(container)
|
57
57
|
end
|
58
58
|
|
59
|
-
assert
|
59
|
+
assert expected_steps.collect { |step| step.step_text }.flatten.sort == steps.sort
|
60
60
|
end
|
61
61
|
|
62
62
|
When /^the(?: "([^"]*)")? steps collected from (?:the )?feature(?: "([^"]*)")? are as follows:$/ do |defined, file, steps|
|
@@ -73,7 +73,7 @@ When /^the(?: "([^"]*)")? steps collected from (?:the )?feature(?: "([^"]*)")? a
|
|
73
73
|
expected_steps = CucumberAnalytics::World.steps_in(container)
|
74
74
|
end
|
75
75
|
|
76
|
-
assert
|
76
|
+
assert expected_steps.collect { |step| step.step_text }.flatten.sort == steps.sort
|
77
77
|
end
|
78
78
|
|
79
79
|
When /^the(?: "([^"]*)")? steps collected from (?:the )?file(?: "([^"]*)")? are as follows:$/ do |defined, file, steps|
|
@@ -90,7 +90,7 @@ When /^the(?: "([^"]*)")? steps collected from (?:the )?file(?: "([^"]*)")? are
|
|
90
90
|
expected_steps = CucumberAnalytics::World.steps_in(container)
|
91
91
|
end
|
92
92
|
|
93
|
-
assert
|
93
|
+
assert expected_steps.collect { |step| step.step_text }.flatten.sort == steps.sort
|
94
94
|
end
|
95
95
|
|
96
96
|
When /^the(?: "([^"]*)")? steps collected from the directory are as follows:$/ do |defined, steps|
|
@@ -106,7 +106,7 @@ When /^the(?: "([^"]*)")? steps collected from the directory are as follows:$/ d
|
|
106
106
|
expected_steps = CucumberAnalytics::World.steps_in(container)
|
107
107
|
end
|
108
108
|
|
109
|
-
assert
|
109
|
+
assert expected_steps.collect { |step| step.step_text }.flatten.sort == steps.sort
|
110
110
|
end
|
111
111
|
|
112
112
|
Then /^the tests collected from feature "([^"]*)" are as follows:$/ do |file, tests|
|
@@ -114,7 +114,7 @@ Then /^the tests collected from feature "([^"]*)" are as follows:$/ do |file, te
|
|
114
114
|
|
115
115
|
actual_tests = CucumberAnalytics::World.tests_in(@parsed_files[file - 1].feature).collect { |test| test.name }
|
116
116
|
|
117
|
-
assert
|
117
|
+
assert actual_tests.flatten.sort == tests.raw.flatten.sort
|
118
118
|
end
|
119
119
|
|
120
120
|
Then /^the tests collected from file "([^"]*)" are as follows:$/ do |file, tests|
|
@@ -122,7 +122,7 @@ Then /^the tests collected from file "([^"]*)" are as follows:$/ do |file, tests
|
|
122
122
|
|
123
123
|
actual_tests = CucumberAnalytics::World.tests_in(@parsed_files[file - 1]).collect { |test| test.name }
|
124
124
|
|
125
|
-
assert
|
125
|
+
assert actual_tests.flatten.sort == tests.raw.flatten.sort
|
126
126
|
end
|
127
127
|
|
128
128
|
Then /^the tests collected from directory "([^"]*)" are as follows:$/ do |directory, tests|
|
@@ -130,7 +130,7 @@ Then /^the tests collected from directory "([^"]*)" are as follows:$/ do |direct
|
|
130
130
|
|
131
131
|
actual_tests = CucumberAnalytics::World.tests_in(@parsed_directories[directory - 1]).collect { |test| test.name }
|
132
132
|
|
133
|
-
assert
|
133
|
+
assert actual_tests.flatten.sort == tests.raw.flatten.sort
|
134
134
|
end
|
135
135
|
|
136
136
|
Then /^the features collected from file "([^"]*)" are as follows:$/ do |file, features|
|
@@ -138,7 +138,7 @@ Then /^the features collected from file "([^"]*)" are as follows:$/ do |file, fe
|
|
138
138
|
|
139
139
|
actual_features = CucumberAnalytics::World.features_in(@parsed_files[file - 1]).collect { |feature| feature.name }
|
140
140
|
|
141
|
-
assert
|
141
|
+
assert actual_features.flatten.sort == features.raw.flatten.sort
|
142
142
|
end
|
143
143
|
|
144
144
|
Then /^the features collected from directory "([^"]*)" are as follows:$/ do |directory, features|
|
@@ -146,7 +146,7 @@ Then /^the features collected from directory "([^"]*)" are as follows:$/ do |dir
|
|
146
146
|
|
147
147
|
actual_features = CucumberAnalytics::World.features_in(@parsed_directories[directory - 1]).collect { |feature| feature.name }
|
148
148
|
|
149
|
-
assert
|
149
|
+
assert actual_features.flatten.sort == features.raw.flatten.sort
|
150
150
|
end
|
151
151
|
|
152
152
|
Then /^the files collected from directory "([^"]*)" are as follows:$/ do |directory, files|
|
@@ -154,5 +154,5 @@ Then /^the files collected from directory "([^"]*)" are as follows:$/ do |direct
|
|
154
154
|
|
155
155
|
actual_files = CucumberAnalytics::World.files_in(@parsed_directories[directory - 1]).collect { |file| file.name }
|
156
156
|
|
157
|
-
assert
|
157
|
+
assert actual_files.flatten.sort == files.raw.flatten.sort
|
158
158
|
end
|
data/features/support/env.rb
CHANGED
@@ -1,19 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
unless RUBY_VERSION.to_s < '1.9.0'
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start
|
4
|
+
end
|
3
5
|
|
4
|
-
|
5
|
-
include Wrong
|
6
|
+
include Test::Unit::Assertions
|
6
7
|
|
7
8
|
require File.dirname(__FILE__) + '/../../lib/cucumber_analytics'
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
Log4r::FileOutputter.new('logfile',
|
12
|
-
:filename=>'test_log.txt',
|
13
|
-
:trunc=>true,
|
14
|
-
:level=>Log4r::DEBUG)
|
15
|
-
|
16
|
-
CucumberAnalytics::Logging.logger.add('logfile')
|
10
|
+
CucumberAnalytics::Logging.set_log_level(Logger::FATAL)
|
17
11
|
|
18
12
|
|
19
13
|
DEFAULT_FEATURE_FILE_NAME = 'test_feature.feature'
|
@@ -1,8 +1,20 @@
|
|
1
1
|
module CucumberAnalytics
|
2
2
|
module Logging
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def set_log_level(log_level)
|
7
|
+
logger.level = log_level
|
8
|
+
end
|
9
|
+
|
10
|
+
def logger
|
11
|
+
@logger ||= Logger.new('logfile.log')
|
12
|
+
end
|
13
|
+
|
14
|
+
def logger=(new_logger)
|
15
|
+
@logger = new_logger
|
16
|
+
end
|
17
|
+
|
6
18
|
end
|
7
19
|
|
8
20
|
end
|
@@ -21,8 +21,8 @@ module CucumberAnalytics
|
|
21
21
|
# Returns true if the two steps have the same text, minus any keywords
|
22
22
|
# and arguments, and false otherwise.
|
23
23
|
def ==(other_step)
|
24
|
-
left_step = step_text(with_keywords
|
25
|
-
right_step = other_step.step_text(with_keywords
|
24
|
+
left_step = step_text(:with_keywords => false, :with_arguments => false)
|
25
|
+
right_step = other_step.step_text(:with_keywords => false, :with_arguments => false)
|
26
26
|
|
27
27
|
left_step == right_step
|
28
28
|
end
|
@@ -35,18 +35,18 @@ module CucumberAnalytics
|
|
35
35
|
#
|
36
36
|
# a_step.step_text
|
37
37
|
# #=> ['Given *some* step with a block:', 'block line 1', 'block line 2']
|
38
|
-
# a_step.step_text(with_keywords
|
38
|
+
# a_step.step_text(:with_keywords => false)
|
39
39
|
# #=> ['*some* step with a block:', 'block line 1', 'block line 2']
|
40
|
-
# a_step.step_text(with_arguments
|
40
|
+
# a_step.step_text(:with_arguments => false, :left_delimiter => '*', :right_delimiter => '*')
|
41
41
|
# #=> ['Given ** step with a block:']
|
42
|
-
# a_step.step_text(with_keywords
|
42
|
+
# a_step.step_text(:with_keywords => false, :with_arguments => false, :left_delimiter => '-', :right_delimiter => '-'))
|
43
43
|
# #=> ['*some* step with a block:']
|
44
44
|
#
|
45
45
|
def step_text(options = {})
|
46
|
-
options = {with_keywords
|
47
|
-
with_arguments
|
48
|
-
left_delimiter
|
49
|
-
right_delimiter
|
46
|
+
options = {:with_keywords => true,
|
47
|
+
:with_arguments => true,
|
48
|
+
:left_delimiter => World.left_delimiter,
|
49
|
+
:right_delimiter => World.right_delimiter}.merge(options)
|
50
50
|
|
51
51
|
final_step = []
|
52
52
|
step_text = ''
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module CucumberAnalytics
|
2
|
-
VERSION = "0.0.
|
3
|
-
end
|
1
|
+
module CucumberAnalytics
|
2
|
+
VERSION = "0.0.4"
|
3
|
+
end
|
data/lib/cucumber_analytics.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber_analytics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -43,22 +43,6 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: wrong
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
46
|
- !ruby/object:Gem::Dependency
|
63
47
|
name: simplecov
|
64
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,22 +59,6 @@ dependencies:
|
|
75
59
|
- - ! '>='
|
76
60
|
- !ruby/object:Gem::Version
|
77
61
|
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: log4r
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
62
|
description: Static analysis of Cucumber tests made easy.
|
95
63
|
email:
|
96
64
|
- morrow748@gmail.com
|