cuke_cataloger 1.6.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -3
- data/LICENSE.txt +1 -1
- data/README.md +11 -11
- data/cuke_cataloger.gemspec +33 -13
- data/exe/cuke_cataloger +53 -0
- data/lib/cuke_cataloger/formatters/text_report_formatter.rb +7 -2
- data/lib/cuke_cataloger/rake_tasks.rb +9 -4
- data/lib/cuke_cataloger/unique_test_case_tagger.rb +152 -147
- data/lib/cuke_cataloger/version.rb +1 -1
- data/lib/cuke_cataloger.rb +0 -1
- metadata +90 -51
- data/.cucumberproignore +0 -1
- data/.gitignore +0 -18
- data/.simplecov +0 -7
- data/.travis.yml +0 -67
- data/Gemfile +0 -41
- data/Rakefile +0 -70
- data/appveyor.yml +0 -188
- data/bin/cuke_cataloger +0 -49
- data/testing/cucumber/step_definitions/action_steps.rb +0 -64
- data/testing/cucumber/step_definitions/setup_steps.rb +0 -76
- data/testing/cucumber/step_definitions/verification_steps.rb +0 -211
- data/testing/cucumber/support/env.rb +0 -40
- data/testing/file_helper.rb +0 -42
- data/testing/fixtures/Rakefile +0 -19
- data/testing/fixtures/tests/foo.feature +0 -11
- data/testing/gemfiles/cql1.gemfile +0 -40
- data/testing/gemfiles/cuke_modeler0.gemfile +0 -35
- data/testing/gemfiles/cuke_modeler1.gemfile +0 -35
- data/testing/gemfiles/cuke_modeler2.gemfile +0 -35
- data/testing/gemfiles/cuke_modeler3.gemfile +0 -9
- data/testing/gemfiles/rake10.gemfile +0 -38
- data/testing/gemfiles/rake11.gemfile +0 -30
- data/testing/gemfiles/rake12.gemfile +0 -35
- data/testing/gemfiles/rake13.gemfile +0 -8
- data/testing/gemfiles/thor0.gemfile +0 -39
- data/testing/gemfiles/thor1.gemfile +0 -11
- data/testing/rspec/spec/cuke_cataloger_spec.rb +0 -22
- data/testing/rspec/spec/spec_helper.rb +0 -23
- data/testing/rspec/spec/unique_test_case_tagger_integration_spec.rb +0 -295
- data/testing/rspec/spec/unique_test_case_tagger_unit_spec.rb +0 -81
- data/todo.txt +0 -5
data/bin/cuke_cataloger
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
4
|
-
require 'thor'
|
5
|
-
require 'cuke_cataloger'
|
6
|
-
|
7
|
-
|
8
|
-
class CLI < Thor
|
9
|
-
|
10
|
-
desc 'catalog_test_cases', 'Catalog the test cases in LOCATION with an id based on PREFIX'
|
11
|
-
option :location, :default => '.'
|
12
|
-
option :prefix, :default => '@test_case_'
|
13
|
-
option :row_id, :type => :boolean, :default => true
|
14
|
-
option :id_column_name, :default => 'test_case_id'
|
15
|
-
|
16
|
-
def catalog_test_cases
|
17
|
-
puts "Tagging tests in '#{options[:location]}' with tag '#{options[:prefix]}'\n"
|
18
|
-
puts "Including outline rows\n" if options[:row_id]
|
19
|
-
|
20
|
-
tagger = CukeCataloger::UniqueTestCaseTagger.new
|
21
|
-
tagger.tag_tests(options[:location], options[:prefix], {}, options[:row_id], options[:id_column_name])
|
22
|
-
end
|
23
|
-
|
24
|
-
desc 'validate_test_cases', 'Validate the test cases in LOCATION with an id based on PREFIX. Will output the report to FILE, if provided.'
|
25
|
-
option :location, :default => '.'
|
26
|
-
option :prefix, :default => '@test_case_'
|
27
|
-
option :row_id, :type => :boolean, :default => true
|
28
|
-
option :id_column_name, :default => 'test_case_id'
|
29
|
-
option :file
|
30
|
-
|
31
|
-
def validate_test_cases
|
32
|
-
puts "Validating tests in '#{options[:location]}' with tag '#{options[:prefix]}'\n"
|
33
|
-
puts "Including outline rows\n" if options[:row_id]
|
34
|
-
|
35
|
-
results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(options[:location], options[:prefix], options[:row_id], options[:id_column_name])
|
36
|
-
report_text = CukeCataloger::TextReportFormatter.new.format_data(results)
|
37
|
-
|
38
|
-
if options[:file]
|
39
|
-
puts "Problems found: #{results.count}"
|
40
|
-
File.open(options[:file], 'w') { |file| file.write(report_text) }
|
41
|
-
else
|
42
|
-
puts report_text
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
CLI.start(ARGV)
|
@@ -1,64 +0,0 @@
|
|
1
|
-
When(/^the files? (?:is|are) processed$/) do
|
2
|
-
@start_index ||= {}
|
3
|
-
@tag_prefix ||= '@test_case_'
|
4
|
-
@directory = CukeModeler::Directory.new(@test_directory)
|
5
|
-
|
6
|
-
tagger = CukeCataloger::UniqueTestCaseTagger.new
|
7
|
-
tagger.tag_location = @above_or_below if @above_or_below
|
8
|
-
|
9
|
-
tagger.tag_tests(@directory.path, @tag_prefix, @start_index)
|
10
|
-
end
|
11
|
-
|
12
|
-
When(/^the ids in the test suite are validated$/) do
|
13
|
-
@directory = CukeModeler::Directory.new(@test_directory)
|
14
|
-
|
15
|
-
args = [@directory.path]
|
16
|
-
args << @tag_prefix if @tag_prefix
|
17
|
-
|
18
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(*args)
|
19
|
-
end
|
20
|
-
|
21
|
-
When(/^the files are scanned$/) do
|
22
|
-
@directory = CukeModeler::Directory.new(@test_directory)
|
23
|
-
@exception_raised = false
|
24
|
-
|
25
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.scan_for_tagged_tests(@directory.path, @tag_prefix)
|
26
|
-
end
|
27
|
-
|
28
|
-
When(/^the existing ids are determined$/) do
|
29
|
-
@directory = CukeModeler::Directory.new(@test_directory)
|
30
|
-
|
31
|
-
args = [@directory.path]
|
32
|
-
args << @tag_prefix if @tag_prefix
|
33
|
-
@ids_found = CukeCataloger::UniqueTestCaseTagger.new.determine_known_ids(*args)
|
34
|
-
end
|
35
|
-
|
36
|
-
When(/^the following command is executed:$/) do |command|
|
37
|
-
if command =~ /--file /
|
38
|
-
output_file_name = command.match(/--file <path_to>\/(.*)\.txt/)[1]
|
39
|
-
command.sub!(/--file <path_to>\/(.*)\.txt/, "--file #{@root_test_directory}/#{output_file_name}.txt")
|
40
|
-
end
|
41
|
-
|
42
|
-
command.sub!('<path_to>', FIXTURE_DIRECTORY)
|
43
|
-
command = "bundle exec ruby #{@executable_directory}/#{command}"
|
44
|
-
|
45
|
-
Dir.chdir(FIXTURE_DIRECTORY) do
|
46
|
-
@output = `#{command}`
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
When(/^the following task is invoked:$/) do |command|
|
51
|
-
command.sub!('<path_to>/tests', "#{FIXTURE_DIRECTORY}/tests")
|
52
|
-
command.sub!('<path_to>/foo', "#{@root_test_directory}/foo")
|
53
|
-
command = "bundle exec rake #{command}"
|
54
|
-
|
55
|
-
Dir.chdir(FIXTURE_DIRECTORY) do
|
56
|
-
@output = `#{command}`
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
When(/^the following code is run:$/) do |code_text|
|
61
|
-
code_text.sub!('<path_to>', FIXTURE_DIRECTORY)
|
62
|
-
|
63
|
-
eval(code_text)
|
64
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
Given /^the following feature file(?: "([^"]*)")?:$/ do |file_name, file_text|
|
2
|
-
@test_directory = @root_test_directory
|
3
|
-
@files_created ||= 0
|
4
|
-
@feature_files ||= []
|
5
|
-
|
6
|
-
file_name ||= "test_feature_#{@files_created + 1}"
|
7
|
-
file_name = File.basename(file_name, '.feature')
|
8
|
-
|
9
|
-
file_path = CukeCataloger::FileHelper.create_feature_file(:directory => @test_directory, :name => file_name, :text => file_text)
|
10
|
-
@feature_files << file_path
|
11
|
-
|
12
|
-
@files_created += 1
|
13
|
-
end
|
14
|
-
|
15
|
-
When(/^a tag prefix of "([^"]*)"$/) do |prefix|
|
16
|
-
@tag_prefix = prefix
|
17
|
-
end
|
18
|
-
|
19
|
-
And(/^a start index of "([^"]*)"$/) do |index|
|
20
|
-
@start_index ||= {:sub => {}}
|
21
|
-
@start_index[:primary] = index.to_i
|
22
|
-
end
|
23
|
-
|
24
|
-
And(/^a start index of "([^"]*)" for testcase "([^"]*)"$/) do |sub_index, parent_index|
|
25
|
-
@start_index ||= {:sub => {}}
|
26
|
-
@start_index[:sub][parent_index.to_s] = sub_index.to_i
|
27
|
-
end
|
28
|
-
|
29
|
-
Given(/^a feature file$/) do
|
30
|
-
@test_directory = @root_test_directory
|
31
|
-
@files_created ||= 0
|
32
|
-
@feature_files ||= []
|
33
|
-
|
34
|
-
file_name = "test_feature_#{@files_created + 1}.feature"
|
35
|
-
file_name = File.basename(file_name, '.feature')
|
36
|
-
|
37
|
-
file_text = "Feature:\nScenario Outline:\n* a step\nExamples:\n| param 1 |\n| value 1 |"
|
38
|
-
|
39
|
-
file_path = CukeCataloger::FileHelper.create_feature_file(:directory => @test_directory, :name => file_name, :text => file_text)
|
40
|
-
@feature_files << file_path
|
41
|
-
|
42
|
-
@files_created += 1
|
43
|
-
end
|
44
|
-
|
45
|
-
And(/^the tag should be at the "([^"]*)"$/) do |tag_location|
|
46
|
-
case tag_location
|
47
|
-
when 'top'
|
48
|
-
@above_or_below = :above
|
49
|
-
when 'bottom'
|
50
|
-
@above_or_below = :below
|
51
|
-
when 'side'
|
52
|
-
@above_or_below = :adjacent
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
And(/^the tag location is unspecified$/) do
|
57
|
-
@above_or_below = nil
|
58
|
-
end
|
59
|
-
|
60
|
-
Given(/^the cuke_cataloger executable is available$/) do
|
61
|
-
@executable_directory = "#{PROJECT_ROOT}/bin"
|
62
|
-
end
|
63
|
-
|
64
|
-
And(/^there are test cases in the "([^"]*)" directory that have not been cataloged with "([^"]*)"$/) do |target_directory, prefix|
|
65
|
-
target_directory = "#{FIXTURE_DIRECTORY}/#{target_directory}"
|
66
|
-
|
67
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(target_directory, prefix)
|
68
|
-
|
69
|
-
# Making sure that there is work to be done, thus avoiding false positives
|
70
|
-
expect(@test_results.select { |test_result| test_result[:problem] == :missing_tag }).to_not be_empty
|
71
|
-
end
|
72
|
-
|
73
|
-
Given(/^the Rake tasks provided by the gem have been loaded$/) do
|
74
|
-
File.open("#{FIXTURE_DIRECTORY}/Rakefile", 'a') { |file| file.puts 'CukeCataloger.create_tasks' }
|
75
|
-
CukeCataloger.create_tasks
|
76
|
-
end
|
@@ -1,211 +0,0 @@
|
|
1
|
-
Then(/^the resulting file(?: "([^"]*)")? is:$/) do |file_index, expected_text|
|
2
|
-
file_index ||= 1
|
3
|
-
file_name = @feature_files[file_index.to_i - 1]
|
4
|
-
|
5
|
-
actual_text = File.read(file_name)
|
6
|
-
|
7
|
-
expect(actual_text).to eq(expected_text)
|
8
|
-
end
|
9
|
-
|
10
|
-
Then(/^the following tests are found to be missing ids:$/) do |expected_tests|
|
11
|
-
verify_category_results(:missing_tag, expected_tests)
|
12
|
-
end
|
13
|
-
|
14
|
-
Then(/^no tests are found to be missing ids$/) do
|
15
|
-
verify_no_results
|
16
|
-
end
|
17
|
-
|
18
|
-
Then(/^the following tests rows are found to be missing sub ids:$/) do |expected_rows|
|
19
|
-
verify_category_results(:missing_row_id, expected_rows)
|
20
|
-
end
|
21
|
-
|
22
|
-
Then(/^no tests rows are found to be missing sub ids$/) do
|
23
|
-
verify_no_results
|
24
|
-
end
|
25
|
-
|
26
|
-
Then(/^the following tests examples are found to be missing a parameter for sub ids:$/) do |expected_examples|
|
27
|
-
verify_category_results(:missing_id_column, expected_examples)
|
28
|
-
end
|
29
|
-
|
30
|
-
Then(/^no test examples are found to be missing id parameters$/) do
|
31
|
-
verify_no_results
|
32
|
-
end
|
33
|
-
|
34
|
-
Then(/^the following tests example rows are found to have mismatched sub ids:$/) do |expected_rows|
|
35
|
-
verify_category_results(:mismatched_row_id, expected_rows)
|
36
|
-
end
|
37
|
-
|
38
|
-
Then(/^no test example rows are found to have mismatched ids$/) do
|
39
|
-
verify_no_results
|
40
|
-
end
|
41
|
-
|
42
|
-
Then(/^the following tests are found to have multiple test ids:$/) do |expected_tests|
|
43
|
-
verify_category_results(:multiple_tags, expected_tests)
|
44
|
-
end
|
45
|
-
|
46
|
-
Then(/^no tests are found to have multiple test ids$/) do
|
47
|
-
verify_no_results
|
48
|
-
end
|
49
|
-
|
50
|
-
Then(/^the following tests are found to have a duplicated id:$/) do |expected_tests|
|
51
|
-
verify_category_results(:duplicate_id_tag, expected_tests)
|
52
|
-
end
|
53
|
-
|
54
|
-
Then(/^no tests are found to have duplicated ids$/) do
|
55
|
-
verify_no_results
|
56
|
-
end
|
57
|
-
|
58
|
-
Then(/^the following tests example rows are found to have duplicated sub ids:$/) do |expected_rows|
|
59
|
-
verify_category_results(:duplicate_row_id, expected_rows)
|
60
|
-
end
|
61
|
-
|
62
|
-
Then(/^no test example rows are found to have duplicated sub ids$/) do
|
63
|
-
verify_no_results
|
64
|
-
end
|
65
|
-
|
66
|
-
Then(/^the following tests example rows are found to have malformed sub ids:$/) do |expected_rows|
|
67
|
-
verify_category_results(:malformed_sub_id, expected_rows)
|
68
|
-
end
|
69
|
-
|
70
|
-
Then(/^no test example rows are found to have malformed sub ids$/) do
|
71
|
-
verify_no_results
|
72
|
-
end
|
73
|
-
|
74
|
-
Then(/^the following tagged test objects are found:$/) do |expected_results|
|
75
|
-
verify_results(expected_results)
|
76
|
-
end
|
77
|
-
|
78
|
-
Then(/^the payload is a model object$/) do
|
79
|
-
class_name = @test_results.first[:object].class.name.split('::').last
|
80
|
-
|
81
|
-
expect(CukeModeler.const_defined?(class_name)).to be true
|
82
|
-
end
|
83
|
-
|
84
|
-
Then(/^the payload has a test and a test row$/) do
|
85
|
-
expect(@test_results[0][:object]).to be_a_kind_of(CukeModeler::Outline)
|
86
|
-
expect(@test_results[1][:object]).to be_a_kind_of(CukeModeler::Row)
|
87
|
-
end
|
88
|
-
|
89
|
-
Then(/^the following ids are found:$/) do |expected_ids|
|
90
|
-
expect(@ids_found).to match_array(expected_ids.raw.flatten)
|
91
|
-
end
|
92
|
-
|
93
|
-
Then(/^the following feature is found to have a test case tag:$/) do |expected_results|
|
94
|
-
verify_category_results(:feature_test_tag, expected_results)
|
95
|
-
end
|
96
|
-
|
97
|
-
Then(/^no feature is found to have a test case tag$/) do
|
98
|
-
verify_no_results
|
99
|
-
end
|
100
|
-
|
101
|
-
Then(/^the column for sub-ids is placed after all other columns$/) do
|
102
|
-
file_model = CukeModeler::FeatureFile.new(@feature_files.first)
|
103
|
-
outline_model = file_model.feature.outlines.first
|
104
|
-
|
105
|
-
expect(outline_model.examples.first.parameters.last).to eq('test_case_id')
|
106
|
-
end
|
107
|
-
|
108
|
-
|
109
|
-
def verify_no_results
|
110
|
-
expect(@test_results).to be_empty
|
111
|
-
end
|
112
|
-
|
113
|
-
def verify_category_results(category, results)
|
114
|
-
@test_results = @test_results.select { |test_result| test_result[:problem] == category }
|
115
|
-
verify_results(results)
|
116
|
-
end
|
117
|
-
|
118
|
-
def verify_results(results)
|
119
|
-
actual = @test_results.collect { |test_result| test_result[:test] }
|
120
|
-
expected = process_expected_results(results)
|
121
|
-
|
122
|
-
expect(actual).to match_array(expected)
|
123
|
-
end
|
124
|
-
|
125
|
-
def process_expected_results(results)
|
126
|
-
results = results.raw.flatten
|
127
|
-
results.collect { |test_path| test_path.sub('path/to', @root_test_directory) }
|
128
|
-
end
|
129
|
-
|
130
|
-
|
131
|
-
Then(/^the resulting first file is:$/) do |expected_text|
|
132
|
-
file_name = @feature_files[0]
|
133
|
-
|
134
|
-
actual_text = File.read(file_name)
|
135
|
-
|
136
|
-
# The order in which Ruby returns files various across version and operating system. This, in turn, will
|
137
|
-
# affect the order in which files are tagged. Either order is acceptable as long as the tagging is
|
138
|
-
# consistent for any given ordering.
|
139
|
-
begin
|
140
|
-
expect(actual_text).to eq(expected_text)
|
141
|
-
rescue RSpec::Expectations::ExpectationNotMetError => e
|
142
|
-
if RUBY_PLATFORM =~ /(?:linux|java)/
|
143
|
-
expected_text.sub!('test_case_1', 'test_case_2')
|
144
|
-
expect(actual_text).to eq(expected_text)
|
145
|
-
@switched = true
|
146
|
-
else
|
147
|
-
raise e
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
end
|
152
|
-
|
153
|
-
And(/^the resulting second file is:$/) do |expected_text|
|
154
|
-
file_name = @feature_files[1]
|
155
|
-
|
156
|
-
actual_text = File.read(file_name)
|
157
|
-
|
158
|
-
# The order in which Ruby returns files various across version and operating system. This, in turn, will
|
159
|
-
# affect the order in which files are tagged. Either order is acceptable as long as the tagging is
|
160
|
-
# consistent for any given ordering.
|
161
|
-
if @switched
|
162
|
-
expected_text.sub!('test_case_2', 'test_case_1')
|
163
|
-
expected_text.sub!('2-1', '1-1')
|
164
|
-
expected_text.sub!('2-2', '1-2')
|
165
|
-
end
|
166
|
-
|
167
|
-
expect(actual_text).to eq(expected_text)
|
168
|
-
end
|
169
|
-
|
170
|
-
Then(/^all of the test cases in the "([^"]*)" directory will be cataloged with "([^"]*)"$/) do |target_directory, prefix|
|
171
|
-
target_directory = "#{FIXTURE_DIRECTORY}/#{target_directory}"
|
172
|
-
|
173
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(target_directory, prefix)
|
174
|
-
|
175
|
-
verify_no_results
|
176
|
-
end
|
177
|
-
|
178
|
-
Then(/^all of the scenarios and outlines in the "([^"]*)" directory will be cataloged with "([^"]*)"$/) do |target_directory, prefix|
|
179
|
-
target_directory = "#{FIXTURE_DIRECTORY}/#{target_directory}"
|
180
|
-
@expected_prefix = prefix
|
181
|
-
tag_rows = false
|
182
|
-
|
183
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(target_directory, @expected_prefix, tag_rows)
|
184
|
-
|
185
|
-
verify_no_results
|
186
|
-
end
|
187
|
-
|
188
|
-
But(/^outline rows in the "([^"]*)" directory are not cataloged$/) do |target_directory|
|
189
|
-
target_directory = "#{FIXTURE_DIRECTORY}/#{target_directory}"
|
190
|
-
tag_rows = true
|
191
|
-
|
192
|
-
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(target_directory, @expected_prefix, tag_rows)
|
193
|
-
|
194
|
-
expect(@test_results.collect { |result| result[:problem] }).to include(:missing_id_column)
|
195
|
-
end
|
196
|
-
|
197
|
-
Then(/^a validation report for the "([^"]*)" directory with prefix "([^"]*)" is output to the console$/) do |target_directory, prefix|
|
198
|
-
expect(@output).to include("Validating tests in '#{target_directory}' with tag '#{prefix}'")
|
199
|
-
expect(@output).to include("Validation Results")
|
200
|
-
end
|
201
|
-
|
202
|
-
Then(/^a validation report for the "([^"]*)" directory with prefix "([^"]*)" is output to "([^"]*)"$/) do |target_directory, prefix, filename|
|
203
|
-
target_directory = "#{FIXTURE_DIRECTORY}/#{target_directory}"
|
204
|
-
filename = "#{@root_test_directory}/#{filename}"
|
205
|
-
|
206
|
-
expect(@output).to include("Validating tests in '#{target_directory}' with tag '#{prefix}'")
|
207
|
-
expect(@output).to include("Problems found:")
|
208
|
-
|
209
|
-
expect(File.exists?(filename)).to be true
|
210
|
-
expect(File.read(filename)).to include('Validation Results')
|
211
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
unless RUBY_VERSION.to_s < '1.9.0'
|
2
|
-
require 'simplecov'
|
3
|
-
SimpleCov.command_name('cuke_cataloger-cucumber')
|
4
|
-
end
|
5
|
-
|
6
|
-
|
7
|
-
require 'cuke_cataloger'
|
8
|
-
|
9
|
-
here = File.dirname(__FILE__)
|
10
|
-
require "#{here}/../../file_helper"
|
11
|
-
|
12
|
-
PROJECT_ROOT = "#{here}/../../.."
|
13
|
-
FIXTURE_DIRECTORY = "#{here}/../../fixtures"
|
14
|
-
|
15
|
-
Before do
|
16
|
-
begin
|
17
|
-
@root_test_directory = CukeCataloger::FileHelper.create_directory
|
18
|
-
rescue => e
|
19
|
-
puts "Error caught in Before hook!"
|
20
|
-
puts "Type: #{e.class}"
|
21
|
-
puts "Message: #{e.message}"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
After do
|
26
|
-
begin
|
27
|
-
`git checkout HEAD -- #{FIXTURE_DIRECTORY}`
|
28
|
-
rescue => e
|
29
|
-
puts "Error caught in After hook!"
|
30
|
-
puts "Type: #{e.class}"
|
31
|
-
puts "Message: #{e.message}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
at_exit {
|
37
|
-
CukeCataloger::FileHelper.created_directories.each do |dir_path|
|
38
|
-
FileUtils.remove_entry(dir_path, true)
|
39
|
-
end
|
40
|
-
}
|
data/testing/file_helper.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'tmpdir'
|
2
|
-
|
3
|
-
|
4
|
-
module CukeCataloger
|
5
|
-
module FileHelper
|
6
|
-
|
7
|
-
class << self
|
8
|
-
|
9
|
-
def create_feature_file(options = {})
|
10
|
-
options[:text] ||= 'Feature:'
|
11
|
-
options[:name] ||= 'test_file'
|
12
|
-
|
13
|
-
create_file(:text => options[:text], :name => options[:name], :extension => '.feature', :directory => options[:directory])
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_file(options = {})
|
17
|
-
options[:text] ||= ''
|
18
|
-
options[:name] ||= 'test_file'
|
19
|
-
options[:extension] ||= '.txt'
|
20
|
-
options[:directory] ||= create_directory
|
21
|
-
|
22
|
-
file_path = "#{options[:directory]}/#{options[:name]}#{options[:extension]}"
|
23
|
-
File.open(file_path, 'w') { |file| file.write(options[:text]) }
|
24
|
-
|
25
|
-
file_path
|
26
|
-
end
|
27
|
-
|
28
|
-
def created_directories
|
29
|
-
@created_directories ||= []
|
30
|
-
end
|
31
|
-
|
32
|
-
def create_directory
|
33
|
-
new_dir = Dir::mktmpdir
|
34
|
-
created_directories << new_dir
|
35
|
-
|
36
|
-
new_dir
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
data/testing/fixtures/Rakefile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
unless RUBY_VERSION.to_s < '1.9.0'
|
2
|
-
require 'simplecov'
|
3
|
-
require 'securerandom'
|
4
|
-
|
5
|
-
SimpleCov.start do
|
6
|
-
root File.dirname(__FILE__) + '/../..'
|
7
|
-
|
8
|
-
# Every test process will need its own unique name or else they will override each others' coverage data
|
9
|
-
command_name("cuke_cataloger-fixtures-#{SecureRandom.uuid}")
|
10
|
-
|
11
|
-
add_filter '/testing/'
|
12
|
-
|
13
|
-
merge_timeout 300
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
require 'cuke_cataloger'
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
|
2
|
-
if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
|
3
|
-
source 'http://rubygems.org'
|
4
|
-
else
|
5
|
-
source 'https://rubygems.org'
|
6
|
-
end
|
7
|
-
|
8
|
-
gemspec :path => "../../"
|
9
|
-
|
10
|
-
# The Coveralls gem can't handle more recent versions of the SimpleCov gem
|
11
|
-
gem 'simplecov', '<= 0.16.1'
|
12
|
-
|
13
|
-
# cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
|
14
|
-
if RUBY_VERSION =~ /^1\.8/
|
15
|
-
gem 'cucumber', '< 1.3.0'
|
16
|
-
gem 'gherkin', '< 2.12.0'
|
17
|
-
gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
|
18
|
-
gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
|
19
|
-
gem 'rake', '< 11.0' # Rake dropped 1.8.x support after this version
|
20
|
-
elsif RUBY_VERSION =~ /^1\./
|
21
|
-
gem 'cucumber', '< 2.0.0'
|
22
|
-
gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
|
23
|
-
gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
|
24
|
-
gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
|
25
|
-
else
|
26
|
-
# Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
|
27
|
-
gem 'cucumber', '2.2.0'
|
28
|
-
end
|
29
|
-
|
30
|
-
if RUBY_VERSION =~ /^1\./
|
31
|
-
gem 'cuke_modeler', '< 3.0' # The 'cuke_modeler' gem requires Ruby 2.x on/after this version
|
32
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
|
33
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
34
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
35
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
36
|
-
gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
|
37
|
-
end
|
38
|
-
|
39
|
-
# The version of CQL being tested
|
40
|
-
gem 'cql', '~> 1.0'
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
|
2
|
-
if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
|
3
|
-
source 'http://rubygems.org'
|
4
|
-
else
|
5
|
-
source 'https://rubygems.org'
|
6
|
-
end
|
7
|
-
|
8
|
-
gemspec :path => "../../"
|
9
|
-
|
10
|
-
# The Coveralls gem can't handle more recent versions of the SimpleCov gem
|
11
|
-
gem 'simplecov', '<= 0.16.1'
|
12
|
-
|
13
|
-
# cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
|
14
|
-
if RUBY_VERSION =~ /^1\.8/
|
15
|
-
gem 'cucumber', '< 1.3.0'
|
16
|
-
gem 'gherkin', '< 2.12.0'
|
17
|
-
gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
|
18
|
-
gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
|
19
|
-
gem 'rake', '< 11.0' # Rake dropped 1.8.x support after this version
|
20
|
-
elsif RUBY_VERSION =~ /^1\./
|
21
|
-
gem 'cucumber', '< 2.0.0'
|
22
|
-
gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
|
23
|
-
gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
|
24
|
-
gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
|
25
|
-
end
|
26
|
-
|
27
|
-
if RUBY_VERSION =~ /^1\./
|
28
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
|
29
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
30
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
31
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
32
|
-
gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
|
33
|
-
end
|
34
|
-
|
35
|
-
gem 'cuke_modeler', '~> 0.0'
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
|
2
|
-
if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
|
3
|
-
source 'http://rubygems.org'
|
4
|
-
else
|
5
|
-
source 'https://rubygems.org'
|
6
|
-
end
|
7
|
-
|
8
|
-
gemspec :path => "../../"
|
9
|
-
|
10
|
-
# The Coveralls gem can't handle more recent versions of the SimpleCov gem
|
11
|
-
gem 'simplecov', '<= 0.16.1'
|
12
|
-
|
13
|
-
# cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
|
14
|
-
if RUBY_VERSION =~ /^1\.8/
|
15
|
-
gem 'cucumber', '< 1.3.0'
|
16
|
-
gem 'gherkin', '< 2.12.0'
|
17
|
-
gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
|
18
|
-
gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
|
19
|
-
gem 'rake', '< 11.0' # Rake dropped 1.8.x support after this version
|
20
|
-
elsif RUBY_VERSION =~ /^1\./
|
21
|
-
gem 'cucumber', '< 2.0.0'
|
22
|
-
gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
|
23
|
-
gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
|
24
|
-
gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
|
25
|
-
end
|
26
|
-
|
27
|
-
if RUBY_VERSION =~ /^1\./
|
28
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
|
29
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
30
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
31
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
32
|
-
gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
|
33
|
-
end
|
34
|
-
|
35
|
-
gem 'cuke_modeler', '~> 1.0'
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
|
2
|
-
if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
|
3
|
-
source 'http://rubygems.org'
|
4
|
-
else
|
5
|
-
source 'https://rubygems.org'
|
6
|
-
end
|
7
|
-
|
8
|
-
gemspec :path => "../../"
|
9
|
-
|
10
|
-
# The Coveralls gem can't handle more recent versions of the SimpleCov gem
|
11
|
-
gem 'simplecov', '<= 0.16.1'
|
12
|
-
|
13
|
-
# cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
|
14
|
-
if RUBY_VERSION =~ /^1\.8/
|
15
|
-
gem 'cucumber', '< 1.3.0'
|
16
|
-
gem 'gherkin', '< 2.12.0'
|
17
|
-
gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
|
18
|
-
gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
|
19
|
-
gem 'rake', '< 11.0' # Rake dropped 1.8.x support after this version
|
20
|
-
elsif RUBY_VERSION =~ /^1\./
|
21
|
-
gem 'cucumber', '< 2.0.0'
|
22
|
-
gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
|
23
|
-
gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
|
24
|
-
gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
|
25
|
-
end
|
26
|
-
|
27
|
-
if RUBY_VERSION =~ /^1\./
|
28
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
|
29
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
30
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
31
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
32
|
-
gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
|
33
|
-
end
|
34
|
-
|
35
|
-
gem 'cuke_modeler', '~> 2.0'
|