aslakhellesoy-cucumber 0.1.99.3 → 0.1.99.4
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.
- data/Manifest.txt +6 -0
- metadata +1 -1
- data/cucumber.yml +0 -1
- data/examples/cs/README.textile +0 -1
- data/examples/cs/Rakefile +0 -12
- data/examples/cs/compile.bat +0 -1
- data/examples/cs/features/addition.feature +0 -16
- data/examples/cs/features/step_definitons/calculator_steps.rb +0 -19
- data/examples/cs/src/demo/Calculator.cs +0 -20
- data/examples/dos_line_endings/Rakefile +0 -6
- data/examples/dos_line_endings/features/dos_line_endings.feature +0 -9
- data/examples/i18n/README.textile +0 -18
- data/examples/i18n/Rakefile +0 -32
- data/examples/i18n/ar/Rakefile +0 -6
- data/examples/i18n/ar/features/addition.feature +0 -17
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +0 -28
- data/examples/i18n/ar/lib/calculator.rb +0 -10
- data/examples/i18n/da/Rakefile +0 -6
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +0 -24
- data/examples/i18n/da/features/summering.feature +0 -17
- data/examples/i18n/da/lib/kalkulator.rb +0 -11
- data/examples/i18n/de/Rakefile +0 -6
- data/examples/i18n/de/features/addition.feature +0 -16
- data/examples/i18n/de/features/division.feature +0 -9
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/de/lib/calculator.rb +0 -14
- data/examples/i18n/en/Rakefile +0 -6
- data/examples/i18n/en/features/addition.feature +0 -16
- data/examples/i18n/en/features/division.feature +0 -9
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/en/lib/calculator.rb +0 -14
- data/examples/i18n/es/Rakefile +0 -6
- data/examples/i18n/es/features/adicion.feature +0 -17
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +0 -24
- data/examples/i18n/es/lib/calculador.rb +0 -11
- data/examples/i18n/et/Rakefile +0 -6
- data/examples/i18n/et/features/liitmine.feature +0 -17
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -24
- data/examples/i18n/et/lib/kalkulaator.rb +0 -10
- data/examples/i18n/fi/Rakefile +0 -6
- data/examples/i18n/fi/features/jakolasku.feature +0 -9
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +0 -24
- data/examples/i18n/fi/features/yhteenlasku.feature +0 -16
- data/examples/i18n/fi/lib/laskin.rb +0 -14
- data/examples/i18n/fr/Rakefile +0 -6
- data/examples/i18n/fr/features/addition.feature +0 -15
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -27
- data/examples/i18n/fr/lib/calculatrice.rb +0 -10
- data/examples/i18n/id/Rakefile +0 -6
- data/examples/i18n/id/features/addition.feature +0 -16
- data/examples/i18n/id/features/division.feature +0 -9
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/id/lib/calculator.rb +0 -14
- data/examples/i18n/it/Rakefile +0 -6
- data/examples/i18n/it/features/somma.feature +0 -10
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +0 -24
- data/examples/i18n/it/lib/calcolatrice.rb +0 -11
- data/examples/i18n/ja/README.txt +0 -5
- data/examples/i18n/ja/Rakefile +0 -6
- data/examples/i18n/ja/features/addition.feature +0 -16
- data/examples/i18n/ja/features/division.feature +0 -9
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/ja/lib/calculator.rb +0 -14
- data/examples/i18n/ko/Rakefile +0 -6
- data/examples/i18n/ko/features/addition.feature +0 -16
- data/examples/i18n/ko/features/division.feature +0 -10
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/ko/lib/calculator.rb +0 -14
- data/examples/i18n/lt/Rakefile +0 -6
- data/examples/i18n/lt/features/addition.feature +0 -17
- data/examples/i18n/lt/features/division.feature +0 -9
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/lt/lib/calculator.rb +0 -14
- data/examples/i18n/no/Rakefile +0 -6
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +0 -24
- data/examples/i18n/no/features/summering.feature +0 -18
- data/examples/i18n/no/lib/kalkulator.rb +0 -11
- data/examples/i18n/pt/Rakefile +0 -6
- data/examples/i18n/pt/features/adicao.feature +0 -10
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -24
- data/examples/i18n/pt/lib/calculadora.rb +0 -10
- data/examples/i18n/ro/Rakefile +0 -6
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +0 -24
- data/examples/i18n/ro/features/suma.feature +0 -10
- data/examples/i18n/ro/lib/calculator.rb +0 -11
- data/examples/i18n/se/Rakefile +0 -6
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +0 -24
- data/examples/i18n/se/features/summering.feature +0 -17
- data/examples/i18n/se/lib/kalkulator.rb +0 -11
- data/examples/i18n/zh-CN/Rakefile +0 -6
- data/examples/i18n/zh-CN/features/addition.feature +0 -17
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +0 -26
- data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
- data/examples/java/README.textile +0 -22
- data/examples/java/Rakefile +0 -12
- data/examples/java/features/hello.feature +0 -11
- data/examples/java/features/step_definitons/hello_steps.rb +0 -25
- data/examples/java/features/step_definitons/tree_steps.rb +0 -14
- data/examples/java/features/tree.feature +0 -9
- data/examples/jbehave/README.textile +0 -17
- data/examples/jbehave/features/support/env.rb +0 -7
- data/examples/jbehave/features/trading.feature +0 -24
- data/examples/jbehave/pom.xml +0 -48
- data/examples/selenium/Rakefile +0 -6
- data/examples/selenium/features/search.feature +0 -9
- data/examples/selenium/features/step_definitons/stories_steps.rb +0 -40
- data/examples/self_test/README.textile +0 -6
- data/examples/self_test/features/call_undefined_step_from_step_def.feature +0 -7
- data/examples/self_test/features/lots_of_undefined.feature +0 -8
- data/examples/self_test/features/outline_sample.feature +0 -12
- data/examples/self_test/features/sample.feature +0 -16
- data/examples/self_test/features/step_definitions/sample_steps.rb +0 -25
- data/examples/test_unit/Rakefile +0 -6
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -26
- data/examples/test_unit/features/test_unit.feature +0 -9
- data/examples/tickets/Rakefile +0 -11
- data/examples/tickets/cucumber.yml +0 -2
- data/examples/tickets/features/lib/eatting_machine.rb +0 -18
- data/examples/tickets/features/lib/pantry.rb +0 -20
- data/examples/tickets/features/scenario_outline.feature +0 -90
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
- data/examples/tickets/features/step_definitons/tickets_steps.rb +0 -61
- data/examples/tickets/features/tickets.feature +0 -28
- data/examples/watir/README.textile +0 -16
- data/examples/watir/Rakefile +0 -6
- data/examples/watir/features/search.feature +0 -9
- data/examples/watir/features/step_definitons/search_steps.rb +0 -24
- data/examples/watir/features/support/env.rb +0 -32
- data/features/cucumber_cli.feature +0 -327
- data/features/cucumber_cli_outlines.feature +0 -81
- data/features/report_called_undefined_steps.feature +0 -32
- data/features/step_definitions/cucumber_steps.rb +0 -31
- data/features/step_definitions/extra_steps.rb +0 -2
- data/features/support/env.rb +0 -7
- data/gem_tasks/deployment.rake +0 -11
- data/gem_tasks/environment.rake +0 -7
- data/gem_tasks/features.rake +0 -6
- data/gem_tasks/fix_cr_lf.rake +0 -10
- data/gem_tasks/flog.rake +0 -4
- data/gem_tasks/gemspec.rake +0 -10
- data/gem_tasks/rspec.rake +0 -35
- data/gem_tasks/yard.rake +0 -8
- data/lib/autotest/cucumber.rb +0 -6
- data/lib/autotest/cucumber_mixin.rb +0 -124
- data/lib/autotest/cucumber_rails.rb +0 -6
- data/lib/autotest/cucumber_rails_rspec.rb +0 -6
- data/lib/autotest/cucumber_rspec.rb +0 -6
- data/lib/autotest/discover.rb +0 -9
- data/lib/cucumber/ast/comment.rb +0 -26
- data/lib/cucumber/ast/examples.rb +0 -22
- data/lib/cucumber/ast/feature.rb +0 -60
- data/lib/cucumber/ast/features.rb +0 -39
- data/lib/cucumber/ast/filter.rb +0 -22
- data/lib/cucumber/ast/outline_table.rb +0 -49
- data/lib/cucumber/ast/py_string.rb +0 -52
- data/lib/cucumber/ast/scenario.rb +0 -95
- data/lib/cucumber/ast/scenario_outline.rb +0 -83
- data/lib/cucumber/ast/step.rb +0 -139
- data/lib/cucumber/ast/table.rb +0 -214
- data/lib/cucumber/ast/tags.rb +0 -33
- data/lib/cucumber/ast/visitor.rb +0 -93
- data/lib/cucumber/ast.rb +0 -27
- data/lib/cucumber/broadcaster.rb +0 -15
- data/lib/cucumber/cli.rb +0 -410
- data/lib/cucumber/core_ext/exception.rb +0 -53
- data/lib/cucumber/core_ext/instance_exec.rb +0 -54
- data/lib/cucumber/core_ext/proc.rb +0 -33
- data/lib/cucumber/core_ext/string.rb +0 -48
- data/lib/cucumber/formatter/ansicolor.rb +0 -106
- data/lib/cucumber/formatter/console.rb +0 -116
- data/lib/cucumber/formatter/pretty.rb +0 -158
- data/lib/cucumber/formatter/profile.rb +0 -77
- data/lib/cucumber/formatter/progress.rb +0 -68
- data/lib/cucumber/formatter/rerun.rb +0 -35
- data/lib/cucumber/formatter.rb +0 -1
- data/lib/cucumber/formatters/autotest_formatter.rb +0 -21
- data/lib/cucumber/formatters/cucumber.css +0 -132
- data/lib/cucumber/formatters/cucumber.js +0 -11
- data/lib/cucumber/formatters/html_formatter.rb +0 -152
- data/lib/cucumber/formatters/jquery.js +0 -32
- data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
- data/lib/cucumber/formatters/unicode.rb +0 -35
- data/lib/cucumber/jbehave.rb +0 -104
- data/lib/cucumber/languages.yml +0 -314
- data/lib/cucumber/parser/basic.rb +0 -0
- data/lib/cucumber/parser/feature.rb +0 -1315
- data/lib/cucumber/parser/feature.tt +0 -160
- data/lib/cucumber/parser/i18n.tt +0 -27
- data/lib/cucumber/parser/table.rb +0 -396
- data/lib/cucumber/parser/table.tt +0 -53
- data/lib/cucumber/parser/treetop_ext.rb +0 -67
- data/lib/cucumber/parser.rb +0 -24
- data/lib/cucumber/platform.rb +0 -18
- data/lib/cucumber/rails/rspec.rb +0 -5
- data/lib/cucumber/rails/world.rb +0 -73
- data/lib/cucumber/rake/task.rb +0 -106
- data/lib/cucumber/step_definition.rb +0 -87
- data/lib/cucumber/step_mother.rb +0 -164
- data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
- data/lib/cucumber/version.rb +0 -10
- data/lib/cucumber.rb +0 -72
- data/pretty.txt +0 -486
- data/rails_generators/cucumber/USAGE +0 -11
- data/rails_generators/cucumber/cucumber_generator.rb +0 -31
- data/rails_generators/cucumber/templates/cucumber +0 -8
- data/rails_generators/cucumber/templates/cucumber.rake +0 -7
- data/rails_generators/cucumber/templates/env.rb +0 -16
- data/rails_generators/cucumber/templates/paths.rb +0 -12
- data/rails_generators/cucumber/templates/webrat_steps.rb +0 -99
- data/rails_generators/feature/USAGE +0 -12
- data/rails_generators/feature/feature_generator.rb +0 -36
- data/rails_generators/feature/templates/feature.erb +0 -31
- data/rails_generators/feature/templates/steps.erb +0 -24
- data/spec/cucumber/ast/feature_factory.rb +0 -54
- data/spec/cucumber/ast/feature_spec.rb +0 -60
- data/spec/cucumber/ast/py_string_spec.rb +0 -40
- data/spec/cucumber/ast/scenario_outline_spec.rb +0 -64
- data/spec/cucumber/ast/scenario_spec.rb +0 -82
- data/spec/cucumber/ast/step_spec.rb +0 -45
- data/spec/cucumber/ast/table_spec.rb +0 -81
- data/spec/cucumber/broadcaster_spec.rb +0 -14
- data/spec/cucumber/cli_spec.rb +0 -416
- data/spec/cucumber/core_ext/proc_spec.rb +0 -37
- data/spec/cucumber/core_ext/string_spec.rb +0 -42
- data/spec/cucumber/formatter/ansicolor_spec.rb +0 -35
- data/spec/cucumber/formatter/html/cucumber.css +0 -37
- data/spec/cucumber/formatter/html/cucumber.js +0 -11
- data/spec/cucumber/formatter/html/index.html +0 -45
- data/spec/cucumber/formatter/html/jquery-1.3.min.js +0 -19
- data/spec/cucumber/formatter/html/jquery.uitableedit.js +0 -100
- data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -27
- data/spec/cucumber/formatters/features.html +0 -269
- data/spec/cucumber/formatters/profile_formatter_spec.rb +0 -198
- data/spec/cucumber/parser/feature_parser_spec.rb +0 -247
- data/spec/cucumber/parser/table_parser_spec.rb +0 -48
- data/spec/cucumber/rails/stubs/mini_rails.rb +0 -18
- data/spec/cucumber/rails/stubs/test_help.rb +0 -1
- data/spec/cucumber/rails/world_spec.rb +0 -11
- data/spec/cucumber/sell_cucumbers.feature +0 -19
- data/spec/cucumber/step_definition_spec.rb +0 -62
- data/spec/cucumber/step_mom_spec.rb +0 -49
- data/spec/cucumber/treetop_parser/empty_feature.feature +0 -4
- data/spec/cucumber/treetop_parser/empty_scenario.feature +0 -9
- data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +0 -3
- data/spec/cucumber/treetop_parser/fit_scenario.feature +0 -8
- data/spec/cucumber/treetop_parser/given_scenario.feature +0 -9
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +0 -7
- data/spec/cucumber/treetop_parser/multiline_steps.feature +0 -17
- data/spec/cucumber/treetop_parser/multiple_tables.feature +0 -27
- data/spec/cucumber/treetop_parser/scenario_outline.feature +0 -16
- data/spec/cucumber/treetop_parser/spaces.feature +0 -12
- data/spec/cucumber/treetop_parser/test_dos.feature +0 -25
- data/spec/cucumber/treetop_parser/with_comments.feature +0 -10
- data/spec/cucumber/treetop_parser/with_tags.feature +0 -18
- data/spec/cucumber/world/pending_spec.rb +0 -47
- data/spec/spec.opts +0 -2
- data/spec/spec_helper.rb +0 -21
data/features/support/env.rb
DELETED
data/gem_tasks/deployment.rake
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
2
|
-
task :install_gem_no_doc => [:clean, :package] do
|
3
|
-
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
4
|
-
end
|
5
|
-
|
6
|
-
namespace :manifest do
|
7
|
-
desc 'Recreate Manifest.txt to include ALL files'
|
8
|
-
task :refresh do
|
9
|
-
`rake check_manifest | patch -p0 > Manifest.txt`
|
10
|
-
end
|
11
|
-
end
|
data/gem_tasks/environment.rake
DELETED
data/gem_tasks/features.rake
DELETED
data/gem_tasks/fix_cr_lf.rake
DELETED
data/gem_tasks/flog.rake
DELETED
data/gem_tasks/gemspec.rake
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
namespace :gemspec do
|
2
|
-
desc 'Refresh cucumber.gemspec to include ALL files'
|
3
|
-
task :refresh => 'manifest:refresh' do
|
4
|
-
File.open('cucumber.gemspec', 'w') {|io| io.write($hoe.spec.to_ruby)}
|
5
|
-
puts "1) git commit -a -m \"Release #{Cucumber::VERSION::STRING}\""
|
6
|
-
puts "2) git tag -a \"v#{Cucumber::VERSION::STRING}\" -m \"Release #{Cucumber::VERSION::STRING}\""
|
7
|
-
puts "3) git push --tags"
|
8
|
-
puts "4) Bounce the version in version.rb"
|
9
|
-
end
|
10
|
-
end
|
data/gem_tasks/rspec.rake
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
def unable_to_load
|
2
|
-
STDERR.puts <<-EOS
|
3
|
-
To use rspec for testing you must install rspec gem:
|
4
|
-
gem install rspec
|
5
|
-
|
6
|
-
EOS
|
7
|
-
nil
|
8
|
-
end
|
9
|
-
|
10
|
-
def require_spec
|
11
|
-
require 'spec/expectations'
|
12
|
-
rescue LoadError
|
13
|
-
require_spec_with_rubygems
|
14
|
-
end
|
15
|
-
|
16
|
-
def require_spec_with_rubygems
|
17
|
-
require 'rubygems'
|
18
|
-
require 'spec/expectations'
|
19
|
-
rescue LoadError
|
20
|
-
unable_to_load
|
21
|
-
end
|
22
|
-
|
23
|
-
if require_spec
|
24
|
-
begin
|
25
|
-
require 'spec/rake/spectask'
|
26
|
-
rescue LoadError
|
27
|
-
unable_to_load
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Run the Cucumber specs"
|
31
|
-
Spec::Rake::SpecTask.new do |t|
|
32
|
-
t.spec_opts = ['--options', "spec/spec.opts"]
|
33
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
34
|
-
end
|
35
|
-
end
|
data/gem_tasks/yard.rake
DELETED
data/lib/autotest/cucumber.rb
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
require 'autotest'
|
2
|
-
require 'tempfile'
|
3
|
-
require 'yaml'
|
4
|
-
require File.dirname(__FILE__) + '/../cucumber'
|
5
|
-
|
6
|
-
module Autotest::CucumberMixin
|
7
|
-
def self.included(receiver)
|
8
|
-
receiver::ALL_HOOKS << [:run_features, :ran_features]
|
9
|
-
end
|
10
|
-
|
11
|
-
attr_accessor :features_to_run
|
12
|
-
|
13
|
-
def initialize
|
14
|
-
super
|
15
|
-
reset_features
|
16
|
-
end
|
17
|
-
|
18
|
-
def run
|
19
|
-
hook :initialize
|
20
|
-
reset
|
21
|
-
reset_features
|
22
|
-
add_sigint_handler
|
23
|
-
|
24
|
-
self.last_mtime = Time.now if $f
|
25
|
-
|
26
|
-
loop do # ^c handler
|
27
|
-
begin
|
28
|
-
get_to_green
|
29
|
-
if self.tainted then
|
30
|
-
rerun_all_tests
|
31
|
-
rerun_all_features if all_good
|
32
|
-
else
|
33
|
-
hook :all_good
|
34
|
-
end
|
35
|
-
wait_for_changes
|
36
|
-
# Once tests and features are green, reset features every
|
37
|
-
# time a file is changed to see if anything breaks.
|
38
|
-
reset_features
|
39
|
-
rescue Interrupt
|
40
|
-
break if self.wants_to_quit
|
41
|
-
reset
|
42
|
-
reset_features
|
43
|
-
end
|
44
|
-
end
|
45
|
-
hook :quit
|
46
|
-
end
|
47
|
-
|
48
|
-
def all_features_good
|
49
|
-
features_to_run == ""
|
50
|
-
end
|
51
|
-
|
52
|
-
def get_to_green
|
53
|
-
begin
|
54
|
-
super
|
55
|
-
run_features
|
56
|
-
wait_for_changes unless all_features_good
|
57
|
-
end until all_features_good
|
58
|
-
end
|
59
|
-
|
60
|
-
def rerun_all_features
|
61
|
-
reset_features
|
62
|
-
run_features
|
63
|
-
end
|
64
|
-
|
65
|
-
def reset_features
|
66
|
-
self.features_to_run = :all
|
67
|
-
end
|
68
|
-
|
69
|
-
def run_features
|
70
|
-
hook :run_features
|
71
|
-
Tempfile.open('autotest-cucumber') do |dirty_features_file|
|
72
|
-
cmd = self.make_cucumber_cmd(self.features_to_run, dirty_features_file.path)
|
73
|
-
return if cmd.empty?
|
74
|
-
puts cmd unless $q
|
75
|
-
old_sync = $stdout.sync
|
76
|
-
$stdout.sync = true
|
77
|
-
self.results = []
|
78
|
-
line = []
|
79
|
-
begin
|
80
|
-
open("| #{cmd}", "r") do |f|
|
81
|
-
until f.eof? do
|
82
|
-
c = f.getc
|
83
|
-
putc c
|
84
|
-
line << c
|
85
|
-
if c == ?\n then
|
86
|
-
self.results << if RUBY_VERSION >= "1.9" then
|
87
|
-
line.join
|
88
|
-
else
|
89
|
-
line.pack "c*"
|
90
|
-
end
|
91
|
-
line.clear
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
ensure
|
96
|
-
$stdout.sync = old_sync
|
97
|
-
end
|
98
|
-
self.features_to_run = dirty_features_file.read
|
99
|
-
self.tainted = true unless self.features_to_run == []
|
100
|
-
end
|
101
|
-
hook :ran_features
|
102
|
-
end
|
103
|
-
|
104
|
-
def make_cucumber_cmd(features_to_run, dirty_features_filename)
|
105
|
-
return '' if features_to_run == ''
|
106
|
-
|
107
|
-
profiles = YAML.load_file("cucumber.yml").keys rescue []
|
108
|
-
|
109
|
-
profile ||= "autotest-all" if profiles.include?("autotest-all") and features_to_run == :all
|
110
|
-
profile ||= "autotest" if profiles.include?("autotest")
|
111
|
-
profile ||= nil
|
112
|
-
|
113
|
-
if profile
|
114
|
-
args = ["--profile", profile]
|
115
|
-
else
|
116
|
-
args = %w{--format} << (features_to_run == :all ? "progress" : "pretty")
|
117
|
-
end
|
118
|
-
args += %w{--color --format rerun --out} << dirty_features_filename
|
119
|
-
args << (features_to_run == :all ? "features" : features_to_run)
|
120
|
-
args = args.join(' ')
|
121
|
-
|
122
|
-
return "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}"
|
123
|
-
end
|
124
|
-
end
|
data/lib/autotest/discover.rb
DELETED
data/lib/cucumber/ast/comment.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
# Holds the value of a comment parsed from a feature file:
|
4
|
-
#
|
5
|
-
# # Lorem ipsum
|
6
|
-
# # dolor sit amet
|
7
|
-
#
|
8
|
-
# This gets parsed into a Comment with value <tt>"# Lorem ipsum\n# dolor sit amet\n"</tt>
|
9
|
-
#
|
10
|
-
class Comment
|
11
|
-
def initialize(value)
|
12
|
-
@value = value
|
13
|
-
end
|
14
|
-
|
15
|
-
def accept(visitor)
|
16
|
-
@value.split("\n").each do |line|
|
17
|
-
visitor.visit_comment_line(line.strip)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def to_sexp
|
22
|
-
(@value.nil? || @value == '') ? nil : [:comment, @value]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
class Examples
|
4
|
-
def initialize(line, keyword, name, outline_table)
|
5
|
-
@keyword, @name, @outline_table = keyword, name, outline_table
|
6
|
-
end
|
7
|
-
|
8
|
-
def accept(visitor)
|
9
|
-
visitor.visit_examples_name(@keyword, @name)
|
10
|
-
@outline_table.accept(visitor, nil)
|
11
|
-
end
|
12
|
-
|
13
|
-
def at_lines?(lines)
|
14
|
-
lines.empty? || lines.index(@line) || @outline_table.at_lines?(lines)
|
15
|
-
end
|
16
|
-
|
17
|
-
def to_sexp
|
18
|
-
[:examples, @keyword, @name, @outline_table.to_sexp]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/cucumber/ast/feature.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
# Represents the root node of a parsed feature.
|
4
|
-
class Feature
|
5
|
-
attr_accessor :file
|
6
|
-
attr_writer :features, :lines
|
7
|
-
|
8
|
-
def initialize(comment, tags, name, feature_elements)
|
9
|
-
@comment, @tags, @name, @feature_elements = comment, tags, name, feature_elements
|
10
|
-
feature_elements.each{|feature_element| feature_element.feature = self}
|
11
|
-
@lines = []
|
12
|
-
end
|
13
|
-
|
14
|
-
def tagged_with?(tag_names, check_elements=true)
|
15
|
-
@tags.among?(tag_names) ||
|
16
|
-
(check_elements && @feature_elements.detect{|e| e.tagged_with?(tag_names)})
|
17
|
-
end
|
18
|
-
|
19
|
-
def matches_scenario_names?(scenario_names)
|
20
|
-
@feature_elements.detect{|e| e.matches_scenario_names?(scenario_names)}
|
21
|
-
end
|
22
|
-
|
23
|
-
def accept(visitor)
|
24
|
-
visitor.current_feature_lines = @lines
|
25
|
-
visitor.visit_comment(@comment)
|
26
|
-
visitor.visit_tags(@tags)
|
27
|
-
visitor.visit_feature_name(@name)
|
28
|
-
@feature_elements.each do |feature_element|
|
29
|
-
visitor.visit_feature_element(feature_element) if @features.visit?(feature_element, @lines)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def scenario_executed(scenario)
|
34
|
-
@features.scenario_executed(scenario) if @features
|
35
|
-
end
|
36
|
-
|
37
|
-
def step_executed(step)
|
38
|
-
@features.step_executed(step) if @features
|
39
|
-
end
|
40
|
-
|
41
|
-
def backtrace_line(step_name, line)
|
42
|
-
"#{file_line(line)}:in `#{step_name}'"
|
43
|
-
end
|
44
|
-
|
45
|
-
def file_line(line)
|
46
|
-
"#{@file}:#{line}"
|
47
|
-
end
|
48
|
-
|
49
|
-
def to_sexp
|
50
|
-
sexp = [:feature, @name]
|
51
|
-
comment = @comment.to_sexp
|
52
|
-
sexp += [comment] if comment
|
53
|
-
tags = @tags.to_sexp
|
54
|
-
sexp += tags if tags.any?
|
55
|
-
sexp += @feature_elements.map{|e| e.to_sexp}
|
56
|
-
sexp
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
class Features
|
4
|
-
attr_reader :steps, :scenarios
|
5
|
-
|
6
|
-
def initialize(filter)
|
7
|
-
@filter = filter
|
8
|
-
|
9
|
-
@features = []
|
10
|
-
@scenarios = []
|
11
|
-
@steps = Hash.new{|steps, status| steps[status] = []}
|
12
|
-
end
|
13
|
-
|
14
|
-
def add_feature(feature)
|
15
|
-
feature.features = self
|
16
|
-
@features << feature
|
17
|
-
end
|
18
|
-
|
19
|
-
def visit?(node, lines)
|
20
|
-
@filter.matched?(node) &&
|
21
|
-
(lines.empty? ? true : node.at_lines?(lines))
|
22
|
-
end
|
23
|
-
|
24
|
-
def scenario_executed(scenario)
|
25
|
-
@scenarios << scenario
|
26
|
-
end
|
27
|
-
|
28
|
-
def step_executed(step)
|
29
|
-
@steps[step.status] << step
|
30
|
-
end
|
31
|
-
|
32
|
-
def accept(visitor)
|
33
|
-
@features.each do |feature|
|
34
|
-
visitor.visit_feature(feature) if visit?(feature, [])
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/lib/cucumber/ast/filter.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
class Filter
|
4
|
-
def initialize(options)
|
5
|
-
@options = options
|
6
|
-
end
|
7
|
-
|
8
|
-
def matched?(node)
|
9
|
-
matched_by_tags?(node) &&
|
10
|
-
matched_by_scenario_names?(node)
|
11
|
-
end
|
12
|
-
|
13
|
-
def matched_by_tags?(node)
|
14
|
-
@options[:tags].empty? || node.tagged_with?(@options[:tags])
|
15
|
-
end
|
16
|
-
|
17
|
-
def matched_by_scenario_names?(node)
|
18
|
-
@options[:scenario_names].empty? || node.matches_scenario_names?(@options[:scenario_names])
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
class OutlineTable < Table
|
4
|
-
def initialize(raw, scenario_outline)
|
5
|
-
super(raw)
|
6
|
-
@scenario_outline = scenario_outline
|
7
|
-
@cells_class = ExampleCells
|
8
|
-
end
|
9
|
-
|
10
|
-
def accept(visitor, status)
|
11
|
-
rows.each_with_index do |row, n|
|
12
|
-
should_visit = n == 0 ||
|
13
|
-
row.at_lines?(visitor.current_feature_lines) ||
|
14
|
-
@scenario_outline.at_header_or_step_lines?(visitor.current_feature_lines)
|
15
|
-
|
16
|
-
if should_visit
|
17
|
-
visitor.visit_table_row(row, status)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
nil
|
21
|
-
end
|
22
|
-
|
23
|
-
def execute_row(cells, visitor, &proc)
|
24
|
-
@scenario_outline.execute_row(cells, visitor, &proc)
|
25
|
-
end
|
26
|
-
|
27
|
-
class ExampleCells < Cells
|
28
|
-
def accept(visitor, status)
|
29
|
-
if header?
|
30
|
-
@cells.each do |cell|
|
31
|
-
visitor.visit_table_cell(cell, :thead)
|
32
|
-
end
|
33
|
-
nil
|
34
|
-
else
|
35
|
-
exception = @table.execute_row(self, visitor) do |cell, status|
|
36
|
-
visitor.visit_table_cell(cell, status)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def header?
|
44
|
-
index == 0
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
# Represents an inline argument in a step. Example:
|
4
|
-
#
|
5
|
-
# Given the message
|
6
|
-
# """
|
7
|
-
# I like
|
8
|
-
# Cucumber sandwich
|
9
|
-
# """
|
10
|
-
#
|
11
|
-
# The text between the pair of <tt>"""</tt> is stored inside a PyString,
|
12
|
-
# which is yielded to the StepDefinition block as the last argument.
|
13
|
-
#
|
14
|
-
# The StepDefinition can then access the String via the #to_s method. In the
|
15
|
-
# example above, that would return: <tt>"I like\nCucumber sandwich"</tt>
|
16
|
-
#
|
17
|
-
# Note how the indentation from the source is stripped away.
|
18
|
-
#
|
19
|
-
class PyString
|
20
|
-
def initialize(start_line, end_line, string, quotes_indent)
|
21
|
-
@start_line, @end_line = start_line, end_line
|
22
|
-
@string, @quotes_indent = string, quotes_indent
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_s
|
26
|
-
@string.indent(-@quotes_indent)
|
27
|
-
end
|
28
|
-
|
29
|
-
def at_lines?(lines)
|
30
|
-
lines.detect{|l| l >= @start_line && l <= @end_line}
|
31
|
-
end
|
32
|
-
|
33
|
-
def accept(visitor, status)
|
34
|
-
visitor.visit_py_string(to_s, status)
|
35
|
-
end
|
36
|
-
|
37
|
-
def arguments_replaced(arguments) #:nodoc:
|
38
|
-
string = @string
|
39
|
-
arguments.each do |name, value|
|
40
|
-
string = string.gsub(name, value)
|
41
|
-
end
|
42
|
-
PyString.new(@start_line, @end_line, string, @quotes_indent)
|
43
|
-
end
|
44
|
-
|
45
|
-
# For testing only
|
46
|
-
def to_sexp #:nodoc:
|
47
|
-
[:py_string, to_s]
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
module Cucumber
|
2
|
-
module Ast
|
3
|
-
class Scenario
|
4
|
-
attr_writer :feature
|
5
|
-
|
6
|
-
def initialize(comment, tags, line, keyword, name, steps)
|
7
|
-
@comment, @tags, @line, @keyword, @name = comment, tags, line, keyword, name
|
8
|
-
steps.each {|step| step.scenario = self}
|
9
|
-
@steps = steps
|
10
|
-
end
|
11
|
-
|
12
|
-
def status
|
13
|
-
@steps.map{|step| step.status}
|
14
|
-
end
|
15
|
-
|
16
|
-
def tagged_with?(tag_names)
|
17
|
-
@tags.among?(tag_names) || @feature.tagged_with?(tag_names, false)
|
18
|
-
end
|
19
|
-
|
20
|
-
def matches_scenario_names?(scenario_names)
|
21
|
-
scenario_names.detect{|name| @name == name}
|
22
|
-
end
|
23
|
-
|
24
|
-
def accept(visitor)
|
25
|
-
visitor.visit_comment(@comment)
|
26
|
-
visitor.visit_tags(@tags)
|
27
|
-
visitor.visit_scenario_name(@keyword, @name, file_line(@line), source_indent(text_length))
|
28
|
-
visitor.world(self) do |world|
|
29
|
-
previous = :passed
|
30
|
-
@steps.each do |step|
|
31
|
-
step.previous = previous
|
32
|
-
step.world = world
|
33
|
-
visitor.visit_step(step)
|
34
|
-
previous = step.status
|
35
|
-
end
|
36
|
-
end
|
37
|
-
@feature.scenario_executed(self) if @feature && !@executed
|
38
|
-
@executed = true
|
39
|
-
end
|
40
|
-
|
41
|
-
def source_indent(text_length)
|
42
|
-
max_line_length - text_length
|
43
|
-
end
|
44
|
-
|
45
|
-
def max_line_length
|
46
|
-
lengths = (@steps + [self]).map{|e| e.text_length}
|
47
|
-
lengths.max
|
48
|
-
end
|
49
|
-
|
50
|
-
def text_length
|
51
|
-
@keyword.jlength + @name.jlength
|
52
|
-
end
|
53
|
-
|
54
|
-
def at_lines?(lines)
|
55
|
-
at_header_or_step_lines?(lines)
|
56
|
-
end
|
57
|
-
|
58
|
-
def at_header_or_step_lines?(lines)
|
59
|
-
lines.empty? || lines.index(@line) || @steps.detect {|step| step.at_lines?(lines)} || @tags.at_lines?(lines)
|
60
|
-
end
|
61
|
-
|
62
|
-
def undefined?
|
63
|
-
@steps.empty?
|
64
|
-
end
|
65
|
-
|
66
|
-
def step_executed(step)
|
67
|
-
@feature.step_executed(step) if @feature
|
68
|
-
end
|
69
|
-
|
70
|
-
def backtrace_line(name = "#{@keyword} #{@name}", line = @line)
|
71
|
-
@feature.backtrace_line(name, line) if @feature
|
72
|
-
end
|
73
|
-
|
74
|
-
def file_line(line = @line)
|
75
|
-
@feature.file_line(line) if @feature
|
76
|
-
end
|
77
|
-
|
78
|
-
def previous_step(step)
|
79
|
-
i = @steps.index(step)
|
80
|
-
@steps[i-1]
|
81
|
-
end
|
82
|
-
|
83
|
-
def to_sexp
|
84
|
-
sexp = [:scenario, @line, @keyword, @name]
|
85
|
-
comment = @comment.to_sexp
|
86
|
-
sexp += [comment] if comment
|
87
|
-
tags = @tags.to_sexp
|
88
|
-
sexp += tags if tags.any?
|
89
|
-
steps = @steps.map{|step| step.to_sexp}
|
90
|
-
sexp += steps if steps.any?
|
91
|
-
sexp
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|