cucumber_analytics 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +8 -8
  2. data/.simplecov +5 -1
  3. data/History.rdoc +16 -5
  4. data/README.rdoc +5 -0
  5. data/Rakefile +6 -1
  6. data/features/modeling/background_modeling.feature +5 -1
  7. data/features/modeling/directory_modeling.feature +1 -1
  8. data/features/modeling/doc_string_modeling.feature +5 -1
  9. data/features/modeling/example_modeling.feature +5 -1
  10. data/features/modeling/feature_file_modeling.feature +1 -1
  11. data/features/modeling/feature_modeling.feature +15 -10
  12. data/features/modeling/outline_modeling.feature +6 -1
  13. data/features/modeling/row_modeling.feature +5 -1
  14. data/features/modeling/scenario_modeling.feature +6 -1
  15. data/features/modeling/step_modeling.feature +6 -1
  16. data/features/modeling/table_modeling.feature +5 -1
  17. data/features/modeling/tag_modeling.feature +51 -0
  18. data/features/step_definitions/background_steps.rb +12 -0
  19. data/features/step_definitions/doc_string_steps.rb +10 -0
  20. data/features/step_definitions/feature_steps.rb +14 -5
  21. data/features/step_definitions/outline_steps.rb +31 -15
  22. data/features/step_definitions/spec_steps.rb +1 -1
  23. data/features/step_definitions/step_steps.rb +10 -0
  24. data/features/step_definitions/table_steps.rb +11 -0
  25. data/features/step_definitions/tag_steps.rb +53 -0
  26. data/features/step_definitions/test_steps.rb +20 -8
  27. data/features/step_definitions/world_steps.rb +16 -12
  28. data/lib/cucumber_analytics/background.rb +10 -0
  29. data/lib/cucumber_analytics/doc_string.rb +12 -0
  30. data/lib/cucumber_analytics/example.rb +1 -0
  31. data/lib/cucumber_analytics/feature.rb +2 -1
  32. data/lib/cucumber_analytics/feature_element.rb +2 -0
  33. data/lib/cucumber_analytics/outline.rb +1 -0
  34. data/lib/cucumber_analytics/raw.rb +20 -0
  35. data/lib/cucumber_analytics/row.rb +3 -0
  36. data/lib/cucumber_analytics/scenario.rb +1 -0
  37. data/lib/cucumber_analytics/step.rb +3 -0
  38. data/lib/cucumber_analytics/table.rb +8 -0
  39. data/lib/cucumber_analytics/tag.rb +59 -0
  40. data/lib/cucumber_analytics/taggable.rb +15 -0
  41. data/lib/cucumber_analytics/version.rb +1 -1
  42. data/lib/cucumber_analytics/world.rb +5 -0
  43. data/lib/cucumber_analytics.rb +2 -0
  44. data/spec/integration/example_integration_spec.rb +4 -1
  45. data/spec/integration/feature_integration_spec.rb +11 -8
  46. data/spec/integration/outline_integration_spec.rb +4 -1
  47. data/spec/integration/scenario_integration_spec.rb +4 -1
  48. data/spec/spec_helper.rb +1 -0
  49. data/spec/unit/background_unit_spec.rb +1 -0
  50. data/spec/unit/doc_string_unit_spec.rb +1 -0
  51. data/spec/unit/example_unit_spec.rb +1 -0
  52. data/spec/unit/feature_unit_spec.rb +12 -0
  53. data/spec/unit/outline_unit_spec.rb +1 -0
  54. data/spec/unit/raw_element_unit_specs.rb +24 -0
  55. data/spec/unit/raw_unit_spec.rb +25 -0
  56. data/spec/unit/row_unit_spec.rb +1 -0
  57. data/spec/unit/scenario_unit_spec.rb +1 -0
  58. data/spec/unit/step_unit_spec.rb +1 -0
  59. data/spec/unit/table_unit_spec.rb +1 -0
  60. data/spec/unit/tag_unit_spec.rb +39 -0
  61. data/spec/unit/taggable_unit_spec.rb +22 -7
  62. data/spec/unit/tagged_element_unit_specs.rb +22 -7
  63. data/spec/unit/world_unit_spec.rb +3 -2
  64. metadata +14 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTZmMTk1NmM2NDY0M2RlMGUyMjhlOTIyMjQ0MzlhOTliYzU5ZGNmNw==
4
+ MTM1OWIzMGY3Yjk5MTY5ZGUxZmM1ODFlNjJmMTlkZjM2MGNlOTljZA==
5
5
  data.tar.gz: !binary |-
6
- NGVkYTM0YzUxZDFjYWI5OGE3OTMzZDViYzQyYmZjMWQyYjg5MDhjYQ==
6
+ OGIxYzY2MWNjMTk2NzMyNjJlMzU2NjgxZjVlNWVlMmQyNDg3NDRiMQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- Nzg4NTJkMWYxOTE4ZGFkMTJmMDIxYmU3ZmIxZTVhY2VkNmI2YWM5MDVlZjBl
10
- ZDdiZjFmNjViNDFkY2Q1Yzk4MGE5NDYwMzRmNmE0OWQ3MTc5ZGJiNzEyNDE1
11
- MzZjYWVkZTNlY2UyMzJhM2QyMTMyZjNhZmQ1NGNhOGM5ZThlYTI=
9
+ NGU1ZDU5NDc0NDVkNjAxNmNjZWZmM2RiODE2YzhiNmMyNjE5NGRiMjhjYjQ1
10
+ YjkwMmJkZWYzMjBmNzUwZTg5ZmE0NmZkMTQ3MGUzZjVmYWRjNDk5MTk3NDUx
11
+ OWZiNDgxNjU2ZDI0MmJiNjczMmE2OGFmZGI4ZWU1YzkwOTUyYTM=
12
12
  data.tar.gz: !binary |-
13
- OTc0MzBmOGFmYTE1YTM2NzkyNTg0NTI1YWY0NGM5M2EwOTgyNGE2N2FiMzhk
14
- ZTE3NDJmMWM2YmRhZDNjNzE5NjYyY2UxNTQ2NDY5Y2YyZDk3YzU1ZDM4YmMx
15
- ZThmM2JiNTYyNjdlNWMyOTllY2NhYzU5N2VjOGEzMzIyZDJhNDc=
13
+ NjgzZTRiYzU1N2M1ZjIxZWQ2OTJiN2I1MzZlMTNkZjE4YjA5ZjM0NDUxNDRk
14
+ NmFhYTExNTE4MzYzNTJkNGQ4NGQxZjExYjMzMzZiNjRmZWJlY2NhNThjOTY0
15
+ YmMzYzRmMThlMTY0YjhkNjczOTk3NjM5MTA1ZWVmYTU5Y2Q4ZDM=
data/.simplecov CHANGED
@@ -1,4 +1,8 @@
1
1
  SimpleCov.start do
2
2
  root File.dirname(__FILE__)
3
- merge_timeout 60
3
+
4
+ add_filter '/features/'
5
+ add_filter '/spec/'
6
+
7
+ merge_timeout 300
4
8
  end
data/History.rdoc CHANGED
@@ -1,7 +1,18 @@
1
- === Version 1.1.0 / 2013-08-03
1
+ === Version 1.2.0 / 2013-09-01
2
+
3
+ * Bug fix: nil no longer shows up as a child element of a Feature if the Feature
4
+ does not have a Background object.
5
+ * Elements now have access to their original parsed structure as returned by the
6
+ gherkin gem.
7
+ * Tags are now modeled. Non-object tags are still the default in order to remain
8
+ backwards compatible.
9
+
10
+
11
+ === Version 1.1.1 / 2013-08-03
2
12
 
3
13
  * Version bumped due to publishing wrong code for version 1.1.0.
4
14
 
15
+
5
16
  === Version 1.1.0 / 2013-08-01
6
17
 
7
18
  * Outline example rows are now modeled.
@@ -37,7 +48,7 @@
37
48
  equivalents.
38
49
  * Bug fix: Fixed some parsing bugs based around whitespace.
39
50
  * Subdirectories within a directory are now modeled.
40
- * Directory collection added
51
+ * Directory collection added.
41
52
 
42
53
 
43
54
  === Version 0.0.7 / 2013-02-01
@@ -63,21 +74,21 @@
63
74
 
64
75
  === Version 0.0.4 / 2012-12-13
65
76
 
66
- * Removed an unintentional gem dependency
77
+ * Removed an unintentional gem dependency.
67
78
  * Improved 1.8.7 compatibility.
68
79
 
69
80
 
70
81
  === Version 0.0.3 / 2012-11-10
71
82
 
72
83
  * 'But' has been added to the list of recognized step keywords (formerly Given,
73
- When,Then, And, and *)
84
+ When,Then, And, and *).
74
85
  * Bug fix: the number of test cases a feature is considered to contain now
75
86
  properly takes into account an outline's example rows.
76
87
 
77
88
 
78
89
  === Version 0.0.2 / 2012-11-01
79
90
 
80
- * Bug fix: descriptions are no longer cut short due to the presence of keywords
91
+ * Bug fix: descriptions are no longer cut short due to the presence of keywords.
81
92
 
82
93
 
83
94
  === Version 0.0.1 / 2012-10-28
data/README.rdoc CHANGED
@@ -67,6 +67,11 @@ also discovered that our team is creating several redundant steps that could be
67
67
  rewritten into a single, reusable step.
68
68
 
69
69
 
70
+ ===Other usages
71
+
72
+ https://gist.github.com/enkessler/6408879 - Creating a step lexicon
73
+
74
+
70
75
  == Contributing
71
76
 
72
77
  1. Fork it
data/Rakefile CHANGED
@@ -3,6 +3,11 @@ require "bundler/gem_tasks"
3
3
  require 'cucumber/rake/task'
4
4
  require 'rspec/core/rake_task'
5
5
 
6
+ task :clear_coverage do
7
+ code_coverage_directory = "#{File.dirname(__FILE__)}/coverage"
8
+
9
+ FileUtils.remove_dir(code_coverage_directory, true)
10
+ end
6
11
 
7
12
  desc 'Run all acceptance tests for the gem'
8
13
  Cucumber::Rake::Task.new(:tests)
@@ -11,7 +16,7 @@ desc 'Run all API specifications for the gem'
11
16
  RSpec::Core::RakeTask.new(:specs)
12
17
 
13
18
  desc 'Run All The Things'
14
- task :everything do
19
+ task :everything => :clear_coverage do
15
20
  Rake::Task[:specs].invoke
16
21
  Rake::Task[:tests].invoke
17
22
  end
@@ -8,6 +8,7 @@ Feature: Background elements can be modeled.
8
8
  2. the background's description
9
9
  3. the background's steps
10
10
  4. the background's source line
11
+ 5. the background's raw element
11
12
 
12
13
  Background: Test file setup.
13
14
  Given the following feature file:
@@ -26,6 +27,9 @@ Feature: Background elements can be modeled.
26
27
  When the file is read
27
28
 
28
29
 
30
+ Scenario: The raw background element is modeled.
31
+ Then the background correctly stores its underlying implementation
32
+
29
33
  Scenario: The background source line is modeled.
30
34
  Then the background is found to have the following properties:
31
35
  | source_line | 3 |
@@ -48,7 +52,7 @@ Feature: Background elements can be modeled.
48
52
  Scenario Outline: Background models pass all other specifications
49
53
  Exact specifications detailing the API for Background models.
50
54
  Given that there are "<additional specifications>" detailing models
51
- When the corresponding unit tests are run
55
+ When the corresponding specifications are run
52
56
  Then all of those specifications are met
53
57
  Examples:
54
58
  | additional specifications |
@@ -106,7 +106,7 @@ Feature: Directories can be modeled.
106
106
  Scenario Outline: Directory models pass all other specifications
107
107
  Exact specifications detailing the API for directory models.
108
108
  Given that there are "<additional specifications>" detailing models
109
- When the corresponding unit tests are run
109
+ When the corresponding specifications are run
110
110
  Then all of those specifications are met
111
111
  Examples:
112
112
  | additional specifications |
@@ -6,6 +6,7 @@ Feature: Doc String elements can be modeled.
6
6
  All conceptual pieces of a Doc String can be modeled:
7
7
  1. the doc string's content type
8
8
  2. the doc string's contents
9
+ 3. the doc string's raw element
9
10
 
10
11
 
11
12
  Background: Test file setup.
@@ -26,6 +27,9 @@ Feature: Doc String elements can be modeled.
26
27
  When the file is read
27
28
 
28
29
 
30
+ Scenario: The raw doc string element is modeled.
31
+ Then the doc string correctly stores its underlying implementation
32
+
29
33
  Scenario: The doc string's content type is modeled.
30
34
  Then the step "1" doc string content type is "content type"
31
35
  And the step "2" doc string has no content type
@@ -39,7 +43,7 @@ Feature: Doc String elements can be modeled.
39
43
  Scenario Outline: Doc String models pass all other specifications
40
44
  Exact specifications detailing the API for Doc String models.
41
45
  Given that there are "<additional specifications>" detailing models
42
- When the corresponding unit tests are run
46
+ When the corresponding specifications are run
43
47
  Then all of those specifications are met
44
48
  Examples:
45
49
  | additional specifications |
@@ -11,6 +11,7 @@ Feature: Example elements can be modeled.
11
11
  5. the example's tags
12
12
  6. the example's applied tags
13
13
  7. the example's source line
14
+ 8. the example's raw element
14
15
 
15
16
 
16
17
  Background: Test file setup.
@@ -39,6 +40,9 @@ Feature: Example elements can be modeled.
39
40
  When the file is read
40
41
 
41
42
 
43
+ Scenario: The raw example element is modeled.
44
+ Then the test example block correctly stores its underlying implementation
45
+
42
46
  Scenario: The example's source line is modeled.
43
47
  Then the test example block "1" is found to have the following properties:
44
48
  | source_line | 8 |
@@ -87,7 +91,7 @@ Feature: Example elements can be modeled.
87
91
  Scenario Outline: Example models pass all other specifications
88
92
  Exact specifications detailing the API for Examples models.
89
93
  Given that there are "<additional specifications>" detailing models
90
- When the corresponding unit tests are run
94
+ When the corresponding specifications are run
91
95
  Then all of those specifications are met
92
96
  Examples:
93
97
  | additional specifications |
@@ -50,7 +50,7 @@ Feature: Feature files can be modeled.
50
50
  Scenario Outline: Feature file models pass all other specifications
51
51
  Exact specifications detailing the API for .feature file models.
52
52
  Given that there are "<additional specifications>" detailing models
53
- When the corresponding unit tests are run
53
+ When the corresponding specifications are run
54
54
  Then all of those specifications are met
55
55
  Examples:
56
56
  | additional specifications |
@@ -4,15 +4,17 @@ Feature: Features can be modeled.
4
4
  Acceptance criteria
5
5
 
6
6
  All conceptual pieces of a Feature can be modeled:
7
- 1. the feature's name
8
- 2. the feature's description
9
- 3. the feature's tags
10
- 4. the feature's scenarios
11
- 5. the feature's outlines
12
- 6. the feature's background
13
- 7. the feature's total number of tests
14
- 8. the feature's total number of test cases
15
- 9. the feature's source line
7
+ 1. the feature's name
8
+ 2. the feature's description
9
+ 3. the feature's tags
10
+ 4. the feature's scenarios
11
+ 5. the feature's outlines
12
+ 6. the feature's background
13
+ 7. the feature's total number of tests
14
+ 8. the feature's total number of test cases
15
+ 9. the feature's source line
16
+ 10. the feature's raw element
17
+
16
18
 
17
19
  Background: Test file setup.
18
20
  Given the following feature file "much_stuff.feature":
@@ -62,6 +64,9 @@ Feature: Features can be modeled.
62
64
  And the file "as_empty_as_it_gets.feature" is read
63
65
 
64
66
 
67
+ Scenario: The raw feature element is modeled.
68
+ Then the feature correctly stores its underlying implementation
69
+
65
70
  Scenario: The feature's properties are modeled.
66
71
  Then feature "1" is found to have the following properties:
67
72
  | name | The test feature name. |
@@ -137,7 +142,7 @@ Feature: Features can be modeled.
137
142
  Scenario Outline: Feature models pass all other specifications
138
143
  Exact specifications detailing the API for Feature models.
139
144
  Given that there are "<additional specifications>" detailing models
140
- When the corresponding unit tests are run
145
+ When the corresponding specifications are run
141
146
  Then all of those specifications are met
142
147
  Examples:
143
148
  | additional specifications |
@@ -11,6 +11,7 @@ Feature: Scenario Outline elements can be modeled.
11
11
  5. the outline's applied tags
12
12
  6. the outline's example blocks
13
13
  7. the outline's source line
14
+ 8. the outline's raw element
14
15
 
15
16
 
16
17
  Background: Test file setup.
@@ -38,6 +39,10 @@ Feature: Scenario Outline elements can be modeled.
38
39
  And parameter delimiters of "*" and "*"
39
40
  When the file is read
40
41
 
42
+
43
+ Scenario: The raw outline element is modeled.
44
+ Then the test correctly stores its underlying implementation
45
+
41
46
  Scenario: The outline source line is modeled.
42
47
  Then the test is found to have the following properties:
43
48
  | source_line | 5 |
@@ -73,7 +78,7 @@ Feature: Scenario Outline elements can be modeled.
73
78
  Scenario Outline: Outline models pass all other specifications
74
79
  Exact specifications detailing the API for Scenario Outline models.
75
80
  Given that there are "<additional specifications>" detailing models
76
- When the corresponding unit tests are run
81
+ When the corresponding specifications are run
77
82
  Then all of those specifications are met
78
83
  Examples:
79
84
  | additional specifications |
@@ -6,6 +6,7 @@ Feature: Row elements can be modeled.
6
6
  All conceptual pieces of a Row can be modeled:
7
7
  1. the row's source line
8
8
  2. the row's cells
9
+ 3. the row's raw element
9
10
 
10
11
 
11
12
  Background: Test file setup.
@@ -27,6 +28,9 @@ Feature: Row elements can be modeled.
27
28
  When the file is read
28
29
 
29
30
 
31
+ Scenario: The raw row element is modeled.
32
+ Then the test example block row correctly stores its underlying implementation
33
+
30
34
  Scenario: The row's source line is modeled.
31
35
  Then the test example block "1" row "1" is found to have the following properties:
32
36
  | source_line | 6 |
@@ -60,7 +64,7 @@ Feature: Row elements can be modeled.
60
64
  Scenario Outline: Row models pass all other specifications
61
65
  Exact specifications detailing the API for Row models.
62
66
  Given that there are "<additional specifications>" detailing models
63
- When the corresponding unit tests are run
67
+ When the corresponding specifications are run
64
68
  Then all of those specifications are met
65
69
  Examples:
66
70
  | additional specifications |
@@ -10,6 +10,7 @@ Feature: Scenario elements can be modeled.
10
10
  4. the scenario's tags
11
11
  5. the scenario's applied tags
12
12
  6. the scenario's source line
13
+ 7. the scenario's raw element
13
14
 
14
15
 
15
16
  Background: Test file setup.
@@ -31,6 +32,10 @@ Feature: Scenario elements can be modeled.
31
32
  And parameter delimiters of "*" and "*"
32
33
  When the file is read
33
34
 
35
+
36
+ Scenario: The raw scenario element is modeled.
37
+ Then the test correctly stores its underlying implementation
38
+
34
39
  Scenario: The scenario source line is modeled.
35
40
  Then the test is found to have the following properties:
36
41
  | source_line | 6 |
@@ -62,7 +67,7 @@ Feature: Scenario elements can be modeled.
62
67
  Scenario Outline: Scenario models pass all other specifications
63
68
  Exact specifications detailing the API for Scenario models.
64
69
  Given that there are "<additional specifications>" detailing models
65
- When the corresponding unit tests are run
70
+ When the corresponding specifications are run
66
71
  Then all of those specifications are met
67
72
  Examples:
68
73
  | additional specifications |
@@ -9,6 +9,7 @@ Feature: Step elements can be modeled.
9
9
  3. the step's arguments, if any
10
10
  4. the step's associated block, if any
11
11
  5. the step's source line
12
+ 6. the step's raw element
12
13
 
13
14
 
14
15
  Background: Test file setup.
@@ -31,6 +32,10 @@ Feature: Step elements can be modeled.
31
32
  And parameter delimiters of "*" and "*"
32
33
  When the file is read
33
34
 
35
+
36
+ Scenario: The raw step element is modeled.
37
+ Then the test step correctly stores its underlying implementation
38
+
34
39
  Scenario: The step's source line is modeled.
35
40
  Then the test step "1" source line is "4"
36
41
  And the test step "2" source line is "5"
@@ -66,7 +71,7 @@ Feature: Step elements can be modeled.
66
71
  Scenario Outline: Step models pass all other specifications
67
72
  Exact specifications detailing the API for Step models.
68
73
  Given that there are "<additional specifications>" detailing models
69
- When the corresponding unit tests are run
74
+ When the corresponding specifications are run
70
75
  Then all of those specifications are met
71
76
  Examples:
72
77
  | additional specifications |
@@ -5,6 +5,7 @@ Feature: Table elements can be modeled.
5
5
 
6
6
  All conceptual pieces of a Table can be modeled:
7
7
  1. the table's contents
8
+ 2. the table's raw element
8
9
 
9
10
 
10
11
  Background: Test file setup.
@@ -31,10 +32,13 @@ Feature: Table elements can be modeled.
31
32
  | value 1 |
32
33
  | value 2 |
33
34
 
35
+ Scenario: The raw table element is modeled.
36
+ Then the table correctly stores its underlying implementation
37
+
34
38
  Scenario Outline: Table models pass all other specifications
35
39
  Exact specifications detailing the API for Table String models.
36
40
  Given that there are "<additional specifications>" detailing models
37
- When the corresponding unit tests are run
41
+ When the corresponding specifications are run
38
42
  Then all of those specifications are met
39
43
  Examples:
40
44
  | additional specifications |
@@ -0,0 +1,51 @@
1
+ Feature: Tag elements can be modeled.
2
+
3
+
4
+ Acceptance criteria
5
+
6
+ All conceptual pieces of a Tag can be modeled:
7
+ 1. the tag's name
8
+ 2. the tags's source line
9
+ 3. the tags's raw element
10
+
11
+
12
+ Background: Test file setup.
13
+ Given the following feature file:
14
+ """
15
+ @feature_tag
16
+ Feature:
17
+
18
+ @outline_tag
19
+ Scenario Outline:
20
+ * a step
21
+
22
+ @example_tag
23
+ Examples:
24
+ | a param |
25
+ """
26
+ When the file is read
27
+
28
+
29
+ Scenario: The raw tag element is modeled.
30
+ Then the feature tag correctly stores its underlying implementation
31
+ And the test tag correctly stores its underlying implementation
32
+ And the example tag correctly stores its underlying implementation
33
+
34
+ Scenario: The tag's source line is modeled.
35
+ Then the feature tag source line "1"
36
+ And the test tag source line "4"
37
+ And the example tag source line "8"
38
+
39
+ Scenario: The tag name is modeled.
40
+ Then the feature tag name is "@feature_tag"
41
+ And the test tag name is "@outline_tag"
42
+ And the example tag name is "@example_tag"
43
+
44
+ Scenario Outline: Tag models pass all other specifications
45
+ Exact specifications detailing the API for Tag models.
46
+ Given that there are "<additional specifications>" detailing models
47
+ When the corresponding specifications are run
48
+ Then all of those specifications are met
49
+ Examples:
50
+ | additional specifications |
51
+ | tag_unit_spec.rb |