Sha256: a52665301fe9ad0836b02fc838d9b2ee8c9d98406671ee41bb549667e19f670f

Contents?: true

Size: 1.69 KB

Versions: 20

Compression:

Stored size: 1.69 KB

Contents

require 'gherkin/tag_expression'

module ParallelTests
  module Cucumber
    module Formatters
      class ScenarioLineLogger
        attr_reader :scenarios

        def initialize(tag_expression = ::Gherkin::TagExpression.new([]))
          raise "ScenarioLineLogger not supported anymore after upgrading to Cucumber 2.0, please fix!"
          @scenarios = []
          @tag_expression = tag_expression
        end

        def visit_feature_element(feature_element)
          return unless @tag_expression.evaluate(feature_element.source_tags)

          case feature_element
          when ::Cucumber::Ast::Scenario
            line = if feature_element.respond_to?(:line)
              feature_element.line
            else
              feature_element.instance_variable_get(:@line)
            end
            @scenarios << [feature_element.feature.file, line].join(":")
          when ::Cucumber::Ast::ScenarioOutline
            sections = feature_element.instance_variable_get(:@example_sections)
            sections.each { |section|
              rows = if section[1].respond_to?(:rows)
                section[1].rows
              else
                section[1].instance_variable_get(:@rows)
              end
              rows.each_with_index { |row, index|
                next if index == 0  # slices didn't work with jruby data structure
                line = if row.respond_to?(:line)
                  row.line
                else
                  row.instance_variable_get(:@line)
                end
                @scenarios << [feature_element.feature.file, line].join(":")
              }
            }
          end
        end

        def method_missing(*args)
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

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