Class: AllureCucumber::Scenario

Inherits:
Object
  • Object
show all
Defined in:
lib/allure_cucumber/models/scenario.rb

Overview

Cucumber scenario wrapper class

Instance Method Summary collapse

Constructor Details

#initialize(test_case, ast_lookup) ⇒ Scenario

Returns a new instance of Scenario.

Parameters:

  • test_case (Cucumber::Core::Test::Case)
  • ast_lookup (Cucumber::Formatter::AstLookup)


10
11
12
13
14
# File 'lib/allure_cucumber/models/scenario.rb', line 10

def initialize(test_case, ast_lookup)
  @test_case = test_case
  @feature = ast_lookup.gherkin_document(test_case.location.file).feature
  @scenario_source = ast_lookup.scenario_source(test_case)
end

Instance Method Details

#descriptionString

Scenario description or it’s location

Returns:

  • (String)


42
43
44
# File 'lib/allure_cucumber/models/scenario.rb', line 42

def description
  @description ||= scenario.description.empty? ? "Location - #{test_case.location}" : scenario.description.strip
end

#examplesHash<String, String>

Scenario outline row parameters

Returns:

  • (Hash<String, String>)


48
49
50
# File 'lib/allure_cucumber/models/scenario.rb', line 48

def examples
  @examples ||= scenario_outline? ? outline_parameters : {}
end

#feature_file_nameString

Feature file name

Returns:

  • (String)


60
61
62
# File 'lib/allure_cucumber/models/scenario.rb', line 60

def feature_file_name
  @feature_file_name ||= File.basename(location_file, ".feature")
end

#feature_folderString

Feature folder

Returns:

  • (String)


66
67
68
69
70
71
# File 'lib/allure_cucumber/models/scenario.rb', line 66

def feature_folder
  @feature_folder ||= begin
    directory = File.dirname(location_file)
    directory == "." ? nil : File.basename(directory)
  end
end

#feature_nameString

Feature name scenario belongs to

Returns:

  • (String)


24
25
26
# File 'lib/allure_cucumber/models/scenario.rb', line 24

def feature_name
  @feature_name ||= feature.name
end

#idString

Unique scenario id

Returns:

  • (String)


18
19
20
# File 'lib/allure_cucumber/models/scenario.rb', line 18

def id
  @id ||= Digest::MD5.hexdigest(test_case.inspect)
end

#nameString

Scenario name

Returns:

  • (String)


36
37
38
# File 'lib/allure_cucumber/models/scenario.rb', line 36

def name
  @name ||= scenario_outline? ? "#{scenario.name}, #{example_row}" : scenario.name
end

#tagsArray<String>

Scenario tags

Returns:

  • (Array<String>)


54
55
56
# File 'lib/allure_cucumber/models/scenario.rb', line 54

def tags
  @tags ||= test_case.tags.map(&:name)
end

#title_pathArray<String>

Title path without the final scenario display name.

Returns:

  • (Array<String>)


30
31
32
# File 'lib/allure_cucumber/models/scenario.rb', line 30

def title_path
  [feature_path, feature_name, rule_name].compact
end