Sha256: 4d991b8668dea9cabd7ede2c617df41e79774d0d2e4598822af61d550bff1808

Contents?: true

Size: 1.05 KB

Versions: 46

Compression:

Stored size: 1.05 KB

Contents

require 'gherkin/tag_expression'
require 'cucumber/runtime'
require 'cucumber'
require 'parallel_tests/cucumber/scenario_line_logger'
require 'parallel_tests/gherkin/listener'

module ParallelTests
  module Cucumber
    class Scenarios
      class << self
        def all(files, options={})
          tags = []
          tags.concat options[:ignore_tag_pattern].to_s.split(/\s*,\s*/).map {|tag| "~#{tag}" }
          tags.concat options[:test_options].to_s.scan(/(?:-t|--tags) (~?@[\w,~@]+)/).flatten
          split_into_scenarios files, tags.uniq
        end

        private

        def split_into_scenarios(files, tags=[])
          tag_expression = ::Gherkin::TagExpression.new(tags)
          scenario_line_logger = ParallelTests::Cucumber::Formatters::ScenarioLineLogger.new(tag_expression)
          loader = ::Cucumber::Runtime::FeaturesLoader.new(files, [], tag_expression)

          loader.features.each do |feature|
            feature.accept(scenario_line_logger)
          end

          scenario_line_logger.scenarios
        end
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
parallel_tests-2.5.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.4.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.4.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.3.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.3.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.2.2 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.2.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.2.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.1.2 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.1.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.1.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-2.0.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.9.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.8.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.7.1 lib/parallel_tests/cucumber/scenarios.rb
vinted-parallel_tests-1.7.0.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.7.0 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.6.2 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.6.1 lib/parallel_tests/cucumber/scenarios.rb
parallel_tests-1.6.0 lib/parallel_tests/cucumber/scenarios.rb