Sha256: 3b62d1f8850d02e9742e0efd0342e3a35bb4c1d9f91bd19ad895fd24bd62644b

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 KB

Contents

require 'cucumber/core/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

6 entries across 6 versions & 1 rubygems

Version Path
parallel_tests-2.10.0 lib/parallel_tests/cucumber/scenario_line_logger.rb
parallel_tests-2.9.0 lib/parallel_tests/cucumber/scenario_line_logger.rb
parallel_tests-2.8.0 lib/parallel_tests/cucumber/scenario_line_logger.rb
parallel_tests-2.7.1 lib/parallel_tests/cucumber/scenario_line_logger.rb
parallel_tests-2.7.0 lib/parallel_tests/cucumber/scenario_line_logger.rb
parallel_tests-2.6.0 lib/parallel_tests/cucumber/scenario_line_logger.rb