lib/jcukeforker/scenarios.rb in jcukeforker-0.3.1 vs lib/jcukeforker/scenarios.rb in jcukeforker-0.4.0

- old
+ new

@@ -1,6 +1,7 @@ -require 'cucumber/runtime/features_loader' +require 'cucumber/core' +require 'cucumber/core/filter' module JCukeForker # # CukeForker::Scenarios.by_args(args) @@ -12,10 +13,11 @@ # will return an array of scenarios and their line numbers that match # the tags specified in the cucumber profile 'my_profile' AND have the '@edition' tag # class Scenarios + include Cucumber::Core def self.by_args(args) options = Cucumber::Cli::Options.new(STDOUT, STDERR, :default_profile => 'default') tagged(options.parse!(args)[:tag_expressions]) end @@ -23,18 +25,16 @@ any_tag = [] tagged any_tag end def self.tagged(tags) - tag_expression = Gherkin::TagExpression.new(tags) - scenario_line_logger = JCukeForker::Formatters::ScenarioLineLogger.new(tag_expression) - loader = Cucumber::Runtime::FeaturesLoader.new(feature_files, [], tag_expression) - - loader.features.each do |feature| - feature.accept(scenario_line_logger) + scenario_list = ScenarioList.new + feature_files.each do |feature| + source = JCukeForker::NormalisedEncodingFile.read(feature) + file = Cucumber::Core::Gherkin::Document.new(feature, source) + self.new.execute([file], scenario_list, [Cucumber::Core::Test::TagFilter.new(tags)]) end - - scenario_line_logger.scenarios + scenario_list.scenarios end def self.feature_files Dir.glob('**/**.feature') end