itms_automation 2.2 → 2.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/bin/generate.rb +3 -37
  3. data/bin/helper.rb +23 -10
  4. data/bin/itms_automation +18 -23
  5. data/doc/installation.md +16 -0
  6. data/doc/itms-automation-API.md +103 -0
  7. data/doc/itms-automation-help.md +18 -0
  8. data/example/android/android_app/android_app_calculator.zip +0 -0
  9. data/example/android/android_app/android_app_calculator/AndroidCalculator.apk +0 -0
  10. data/example/android/android_app/android_app_calculator/features/calculator.feature +36 -0
  11. data/example/android/android_app/android_app_calculator/features/my_first.feature +13 -0
  12. data/example/android/android_app/android_app_calculator/features/screenshots/test.png +0 -0
  13. data/example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb +5 -0
  14. data/example/android/android_app/android_app_calculator/features/support/env.rb +52 -0
  15. data/example/android/android_app/android_app_calculator/features/support/hooks.rb +26 -0
  16. data/example/android/android_web/android_web_gmail_login.zip +0 -0
  17. data/example/android/android_web/android_web_gmail_login/features/gmail_login.feature +12 -0
  18. data/example/android/android_web/android_web_gmail_login/features/my_first.feature +1 -0
  19. data/example/android/android_web/android_web_gmail_login/features/screenshots/test.png +0 -0
  20. data/example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb +5 -0
  21. data/example/android/android_web/android_web_gmail_login/features/support/env.rb +51 -0
  22. data/example/android/android_web/android_web_gmail_login/features/support/hooks.rb +27 -0
  23. data/example/desktop web/desktop_web_gmail_login.zip +0 -0
  24. data/example/desktop web/desktop_web_gmail_login/features/gmail_login.feature +9 -0
  25. data/example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature +21 -0
  26. data/example/desktop web/desktop_web_gmail_login/features/my_first.feature +1 -0
  27. data/example/desktop web/desktop_web_gmail_login/features/screenshots/test.png +0 -0
  28. data/example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb +5 -0
  29. data/example/desktop web/desktop_web_gmail_login/features/support/env.rb +106 -0
  30. data/example/desktop web/desktop_web_gmail_login/features/support/hooks.rb +38 -0
  31. data/features-skeleton/my_first.feature +5 -0
  32. data/features-skeleton/screenshots/test.png +0 -0
  33. data/features-skeleton/step_definitions/custom_steps.rb +5 -0
  34. data/features-skeleton/step_definitions/repositories/project_object.yml +1 -0
  35. data/features-skeleton/support/env.rb +106 -0
  36. data/features-skeleton/support/hooks.rb +38 -0
  37. data/lib/itms_automation.rb +1 -3
  38. data/lib/itms_automation/assertion_steps.rb +68 -0
  39. data/lib/itms_automation/click_elements_steps.rb +24 -0
  40. data/lib/itms_automation/configuration_steps.rb +7 -0
  41. data/lib/itms_automation/input_steps.rb +59 -0
  42. data/lib/itms_automation/javascript_handling_steps.rb +10 -0
  43. data/lib/itms_automation/methods/assertion_methods.rb +333 -0
  44. data/lib/itms_automation/methods/click_elements_methods.rb +23 -0
  45. data/lib/itms_automation/methods/configuration_methods.rb +35 -0
  46. data/lib/itms_automation/methods/error_handling_methods.rb +93 -0
  47. data/lib/itms_automation/methods/input_methods.rb +69 -0
  48. data/lib/itms_automation/methods/javascript_handling_methods.rb +9 -0
  49. data/lib/itms_automation/methods/misc_methods.rb +63 -0
  50. data/lib/itms_automation/methods/navigate_methods.rb +123 -0
  51. data/lib/itms_automation/methods/progress_methods.rb +15 -0
  52. data/lib/itms_automation/methods/required_files.rb +9 -0
  53. data/lib/itms_automation/methods/screenshot_methods.rb +6 -0
  54. data/lib/itms_automation/navigation_steps.rb +79 -0
  55. data/lib/itms_automation/progress_steps.rb +17 -0
  56. data/lib/itms_automation/screenshot_steps.rb +6 -0
  57. data/lib/itms_automation/version.rb +5 -3
  58. metadata +78 -94
  59. data/bin/console +0 -14
  60. data/bin/documentation_generator.rb +0 -119
  61. data/bin/setup +0 -8
  62. data/lib/itms_automation/all_steps.rb +0 -8
  63. data/lib/itms_automation/assertion_helper.rb +0 -29
  64. data/lib/itms_automation/auto_util.rb +0 -699
  65. data/lib/itms_automation/database_steps_helper.rb +0 -125
  66. data/lib/itms_automation/web_steps_helper.rb +0 -838
  67. data/project/Gemfile +0 -3
  68. data/project/README.md +0 -34
  69. data/project/Rakefile +0 -24
  70. data/project/config/chrome_headless_options.yaml +0 -1
  71. data/project/config/chrome_options.yaml +0 -6
  72. data/project/config/firefox_headless_options.yaml +0 -1
  73. data/project/config/firefox_options.yaml +0 -1
  74. data/project/config/ie_options.yaml +0 -1
  75. data/project/config/remote_options.yaml +0 -6
  76. data/project/config/safari_options.yaml +0 -1
  77. data/project/cucumber.yml +0 -4
  78. data/project/features/TestSuite/WebGUI.feature +0 -4
  79. data/project/features/step_definitions/lib_steps/steps_definition.rb +0 -3
  80. data/project/features/step_definitions/repositories/project_object.yml +0 -2
  81. data/project/features/support/env.rb +0 -10
  82. data/project/features/support/hooks.rb +0 -128
@@ -0,0 +1,6 @@
1
+ require_relative 'required_files'
2
+
3
+ def take_screenshot
4
+ cur_time = Time.now.strftime('%Y%m%d%H%M%S%L')
5
+ $driver.save_screenshot('./features/screenshots/screenshot' + cur_time + '.png')
6
+ end
@@ -0,0 +1,79 @@
1
+ # require 'cucumber'
2
+ # require_relative 'methods/navigate_methods'
3
+
4
+ # Then(/^I navigate to "([^\"]*)"$/)do |link|
5
+ # navigate_to(link)
6
+ # end
7
+
8
+ # Then(/^I navigate forward/) do
9
+ # navigate('forward')
10
+ # end
11
+
12
+ # Then(/^I navigate back/) do
13
+ # navigate('back')
14
+ # end
15
+
16
+ # Then(/^I close browser$/) do
17
+ # close_driver
18
+ # end
19
+
20
+ # # step to resize browser
21
+ # Then(/^I resize browser window size to width (\d+) and height (\d+)$/) do |width, heigth|
22
+ # resize_browser(width, heigth)
23
+ # end
24
+
25
+ # # step to maximize browser
26
+ # Then(/^I maximize browser window$/) do
27
+ # maximize_browser
28
+ # end
29
+
30
+ # # steps to refresh page
31
+ # Then(/^I refresh page$/) do
32
+ # refresh_page
33
+ # end
34
+
35
+ # Then(/^I switch to new window$/) do
36
+ # switch_to_new_window
37
+ # end
38
+
39
+ # Then(/^I switch to previous window$/) do
40
+ # switch_to_old_window
41
+ # end
42
+
43
+ # Then(/^I close new window$/) do
44
+ # close_new_window
45
+ # end
46
+
47
+ # # steps to scroll to element
48
+ # Then(/^I scroll to element "(.*?)"$/) do |type, element|
49
+ # scroll_to_element(type, element)
50
+ # end
51
+
52
+ # # steps to scroll web page to top or end
53
+ # Then(/^I scroll to (top|end) of page$/) do |to|
54
+ # scroll_page(to)
55
+ # end
56
+
57
+ # # step to hover over a element Note: Doesn't work on Windows firefox
58
+ # When(/^I hover over element having (.+) "(.*?)"$/) do |type, element|
59
+ # hover_over_element(type, element)
60
+ # end
61
+
62
+ # # steps to zoom in page
63
+ # Then(/^I zoom in page$/) do
64
+ # zoom_in_out('add')
65
+ # end
66
+
67
+ # # steps to zoom out page
68
+ # Then(/^I zoom out page$/) do
69
+ # zoom_in_out('subtract')
70
+ # end
71
+
72
+ # # steps to zoom out till element displays
73
+ # Then(/^I zoom out page till I see element "(.*?)"$/) do |type, element|
74
+ # zoom_in_out_till_element_display(type, 'subtract', element)
75
+ # end
76
+
77
+ # Then(/^I reset page view$/) do
78
+ # zoom_in_out('numpad0')
79
+ # end
@@ -0,0 +1,17 @@
1
+ # require 'cucumber'
2
+ # require_relative 'methods/progress_methods'
3
+
4
+ # # wait for specific period of time
5
+ # Then(/^I wait for (\d+) sec$/) do |time|
6
+ # wait(time)
7
+ # end
8
+
9
+ # # wait for specific element to display for specific period of time
10
+ # Then(/^I wait (\d+) seconds for element "(.*?)" to display$/) do |duration, element|
11
+ # wait_for_element_to_display(element, duration)
12
+ # end
13
+
14
+ # # wait for specific element to enable for specific period of time
15
+ # Then(/^I wait (\d+) seconds for element "(.*?)" to enable$/) do |duration, element|
16
+ # wait_for_element_to_enable(element, duration)
17
+ # end
@@ -0,0 +1,6 @@
1
+ # require 'cucumber'
2
+ # require_relative 'methods/screenshot_methods'
3
+
4
+ # Then(/^I take screenshot$/) do
5
+ # take_screenshot
6
+ # end
@@ -1,3 +1,5 @@
1
- module ItmsAutomation
2
- VERSION = "2.2"
3
- end
1
+ module ITMS
2
+ module Automation
3
+ VERSION = '2.5.7'
4
+ end
5
+ end
metadata CHANGED
@@ -1,176 +1,160 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itms_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.2'
4
+ version: 2.5.7
5
5
  platform: ruby
6
6
  authors:
7
- - Anh Pham
7
+ - INFOdation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-27 00:00:00.000000000 Z
11
+ date: 2020-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: selenium-webdriver
14
+ name: cucumber
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.6'
19
+ version: 3.1.2
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.6.0
22
+ version: 3.1.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '3.6'
29
+ version: 3.1.2
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.6.0
33
- - !ruby/object:Gem::Dependency
34
- name: cucumber
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '3.1'
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '3.1'
47
- - !ruby/object:Gem::Dependency
48
- name: capybara
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: 3.29.0
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: 3.29.0
32
+ version: 3.1.2
61
33
  - !ruby/object:Gem::Dependency
62
- name: rspec
34
+ name: selenium-webdriver
63
35
  requirement: !ruby/object:Gem::Requirement
64
36
  requirements:
65
37
  - - "~>"
66
38
  - !ruby/object:Gem::Version
67
- version: '3.8'
39
+ version: '3.14'
68
40
  - - ">="
69
41
  - !ruby/object:Gem::Version
70
- version: 3.8.0
42
+ version: 3.14.1
71
43
  type: :runtime
72
44
  prerelease: false
73
45
  version_requirements: !ruby/object:Gem::Requirement
74
46
  requirements:
75
47
  - - "~>"
76
48
  - !ruby/object:Gem::Version
77
- version: '3.8'
49
+ version: '3.14'
78
50
  - - ">="
79
51
  - !ruby/object:Gem::Version
80
- version: 3.8.0
52
+ version: 3.14.1
81
53
  - !ruby/object:Gem::Dependency
82
- name: parallel_tests
54
+ name: appium_lib_core
83
55
  requirement: !ruby/object:Gem::Requirement
84
56
  requirements:
85
57
  - - "~>"
86
58
  - !ruby/object:Gem::Version
87
- version: '2.7'
59
+ version: 3.10.1
88
60
  - - ">="
89
61
  - !ruby/object:Gem::Version
90
- version: 2.7.1
62
+ version: 3.10.1
91
63
  type: :runtime
92
64
  prerelease: false
93
65
  version_requirements: !ruby/object:Gem::Requirement
94
66
  requirements:
95
67
  - - "~>"
96
68
  - !ruby/object:Gem::Version
97
- version: '2.7'
69
+ version: 3.10.1
98
70
  - - ">="
99
71
  - !ruby/object:Gem::Version
100
- version: 2.7.1
72
+ version: 3.10.1
101
73
  - !ruby/object:Gem::Dependency
102
- name: report_builder
74
+ name: httparty
103
75
  requirement: !ruby/object:Gem::Requirement
104
76
  requirements:
105
77
  - - "~>"
106
78
  - !ruby/object:Gem::Version
107
- version: '1.8'
79
+ version: 0.13.7
108
80
  - - ">="
109
81
  - !ruby/object:Gem::Version
110
- version: '1.8'
82
+ version: 0.13.7
111
83
  type: :runtime
112
84
  prerelease: false
113
85
  version_requirements: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - "~>"
116
88
  - !ruby/object:Gem::Version
117
- version: '1.8'
89
+ version: 0.13.7
118
90
  - - ">="
119
91
  - !ruby/object:Gem::Version
120
- version: '1.8'
121
- - !ruby/object:Gem::Dependency
122
- name: cucumber_priority
123
- requirement: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 0.3.2
128
- type: :runtime
129
- prerelease: false
130
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: 0.3.2
92
+ version: 0.13.7
135
93
  description: Behavior driven development (BDD) approach to write automation test script
136
- to test GUI, RESTful, SOAP, Database, eMail.
137
- email:
138
- - anhpq.info@gmail.com
94
+ to test Web and Android applications.
95
+ email: anh.pham@infodation.vn
139
96
  executables:
140
97
  - itms_automation
141
98
  extensions: []
142
99
  extra_rdoc_files: []
143
100
  files:
144
- - bin/console
145
- - bin/documentation_generator.rb
146
101
  - bin/generate.rb
147
102
  - bin/helper.rb
148
103
  - bin/itms_automation
149
- - bin/setup
104
+ - doc/installation.md
105
+ - doc/itms-automation-API.md
106
+ - doc/itms-automation-help.md
107
+ - example/android/android_app/android_app_calculator.zip
108
+ - example/android/android_app/android_app_calculator/AndroidCalculator.apk
109
+ - example/android/android_app/android_app_calculator/features/calculator.feature
110
+ - example/android/android_app/android_app_calculator/features/my_first.feature
111
+ - example/android/android_app/android_app_calculator/features/screenshots/test.png
112
+ - example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb
113
+ - example/android/android_app/android_app_calculator/features/support/env.rb
114
+ - example/android/android_app/android_app_calculator/features/support/hooks.rb
115
+ - example/android/android_web/android_web_gmail_login.zip
116
+ - example/android/android_web/android_web_gmail_login/features/gmail_login.feature
117
+ - example/android/android_web/android_web_gmail_login/features/my_first.feature
118
+ - example/android/android_web/android_web_gmail_login/features/screenshots/test.png
119
+ - example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb
120
+ - example/android/android_web/android_web_gmail_login/features/support/env.rb
121
+ - example/android/android_web/android_web_gmail_login/features/support/hooks.rb
122
+ - example/desktop web/desktop_web_gmail_login.zip
123
+ - example/desktop web/desktop_web_gmail_login/features/gmail_login.feature
124
+ - example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature
125
+ - example/desktop web/desktop_web_gmail_login/features/my_first.feature
126
+ - example/desktop web/desktop_web_gmail_login/features/screenshots/test.png
127
+ - example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb
128
+ - example/desktop web/desktop_web_gmail_login/features/support/env.rb
129
+ - example/desktop web/desktop_web_gmail_login/features/support/hooks.rb
130
+ - features-skeleton/my_first.feature
131
+ - features-skeleton/screenshots/test.png
132
+ - features-skeleton/step_definitions/custom_steps.rb
133
+ - features-skeleton/step_definitions/repositories/project_object.yml
134
+ - features-skeleton/support/env.rb
135
+ - features-skeleton/support/hooks.rb
150
136
  - lib/itms_automation.rb
151
- - lib/itms_automation/all_steps.rb
152
- - lib/itms_automation/assertion_helper.rb
153
- - lib/itms_automation/auto_util.rb
154
- - lib/itms_automation/database_steps_helper.rb
137
+ - lib/itms_automation/assertion_steps.rb
138
+ - lib/itms_automation/click_elements_steps.rb
139
+ - lib/itms_automation/configuration_steps.rb
140
+ - lib/itms_automation/input_steps.rb
141
+ - lib/itms_automation/javascript_handling_steps.rb
142
+ - lib/itms_automation/methods/assertion_methods.rb
143
+ - lib/itms_automation/methods/click_elements_methods.rb
144
+ - lib/itms_automation/methods/configuration_methods.rb
145
+ - lib/itms_automation/methods/error_handling_methods.rb
146
+ - lib/itms_automation/methods/input_methods.rb
147
+ - lib/itms_automation/methods/javascript_handling_methods.rb
148
+ - lib/itms_automation/methods/misc_methods.rb
149
+ - lib/itms_automation/methods/navigate_methods.rb
150
+ - lib/itms_automation/methods/progress_methods.rb
151
+ - lib/itms_automation/methods/required_files.rb
152
+ - lib/itms_automation/methods/screenshot_methods.rb
153
+ - lib/itms_automation/navigation_steps.rb
154
+ - lib/itms_automation/progress_steps.rb
155
+ - lib/itms_automation/screenshot_steps.rb
155
156
  - lib/itms_automation/version.rb
156
- - lib/itms_automation/web_steps_helper.rb
157
- - project/Gemfile
158
- - project/README.md
159
- - project/Rakefile
160
- - project/config/chrome_headless_options.yaml
161
- - project/config/chrome_options.yaml
162
- - project/config/firefox_headless_options.yaml
163
- - project/config/firefox_options.yaml
164
- - project/config/ie_options.yaml
165
- - project/config/remote_options.yaml
166
- - project/config/safari_options.yaml
167
- - project/cucumber.yml
168
- - project/features/TestSuite/WebGUI.feature
169
- - project/features/step_definitions/lib_steps/steps_definition.rb
170
- - project/features/step_definitions/repositories/project_object.yml
171
- - project/features/support/env.rb
172
- - project/features/support/hooks.rb
173
- homepage: http://rubygems.org/gems/itms_automation
157
+ homepage: http://infodation.nl/
174
158
  licenses:
175
159
  - MIT
176
160
  metadata: {}
@@ -182,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
166
  requirements:
183
167
  - - ">="
184
168
  - !ruby/object:Gem::Version
185
- version: '0'
169
+ version: 1.9.3
186
170
  required_rubygems_version: !ruby/object:Gem::Requirement
187
171
  requirements:
188
172
  - - ">="
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "itms_automation"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
@@ -1,119 +0,0 @@
1
- module DocumentationGenerator
2
-
3
- module CommentExtractor
4
- def parse_and_format_comment(comment)
5
- comment.gsub!(/.*coding:.*UTF-8.*/, '')
6
- comment.strip!
7
- comment_lines = comment.split("\n").take_while { |line| line =~ /^\s*#/ }
8
- comment_lines && comment_lines.join("\n").gsub(/^\s*# ?/, '')
9
- end
10
- end
11
-
12
- class StepDefinition
13
-
14
- extend CommentExtractor
15
-
16
- def initialize(definition, comment = nil)
17
- @definition = definition
18
- @comment = comment
19
- end
20
-
21
- def self.try_and_parse(code)
22
- definition = code[/^\s*((When|Then|Given|AfterStep).*)do/, 1]
23
- return unless definition
24
- comment = parse_and_format_comment(code)
25
- return if comment =~ /\bnodoc\b/
26
- new(definition.strip, comment)
27
- end
28
-
29
- def format
30
- <<-TEXT
31
- * **#{format_definition}**
32
-
33
- #{@comment.gsub(/^/, ' ')}
34
- TEXT
35
- end
36
-
37
- def format_definition
38
- if @definition =~ /AfterStep/
39
- @definition[/@\w*/]
40
- else
41
- capture_groups = %w[([^\"]*) ([^"]*) (.*) (.*?) [^"]+ ([^\"]+) ([^']*) ([^/]*) (.+) (.*[^:])]
42
- capture_groups.map! &Regexp.method(:escape)
43
-
44
- @definition.
45
- gsub('/^', '').
46
- gsub('$/', '').
47
- gsub(' ?', ' ').
48
- gsub('(?:|I )', 'I ').
49
- gsub('?:', '').
50
- gsub(Regexp.new(capture_groups.join '|'), '...').
51
- gsub(/\\\//, '/')
52
- end
53
- end
54
- end
55
-
56
- class StepDefinitionFile
57
-
58
- FILE_COMMENT_END = 'FILE_COMMENT_END'
59
-
60
- include CommentExtractor
61
-
62
- def initialize(filename)
63
- @filename = filename
64
- @code = File.read(filename)
65
- @steps = []
66
- extract_comment
67
- add_steps
68
- end
69
-
70
- def extract_comment
71
- if @code.include?(FILE_COMMENT_END)
72
- file_comment = @code.split(FILE_COMMENT_END).first
73
- @comment = parse_and_format_comment(file_comment)
74
- end
75
- end
76
-
77
- def add_steps
78
- @code.split("\n\n").each do |block|
79
- step = StepDefinition.try_and_parse(block)
80
- if step
81
- @steps << step
82
- end
83
- end
84
- end
85
-
86
- def format
87
- <<-TEXT
88
- ### #{format_filename}
89
-
90
- #{@comment}
91
-
92
- #{format_steps}
93
- TEXT
94
- end
95
-
96
- def format_filename
97
- @filename.split('/').last
98
- end
99
-
100
- def format_steps
101
- @steps.collect { |step| step.format }.join("\n\n")
102
- end
103
- end
104
-
105
- class StepDefinitionsDirectory
106
- def initialize(directory)
107
- @step_definition_files = []
108
- Dir["#{directory}/*.rb"].to_a.sort.each do |filename|
109
- next if filename =~ /all_steps/
110
- @step_definition_files << StepDefinitionFile.new(filename)
111
- end
112
- end
113
-
114
- def format
115
- @step_definition_files.collect { |step_definition_file| step_definition_file.format }.join("\n\n")
116
- end
117
- end
118
-
119
- end