cuke_cataloger 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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'
|