Class: AllureCucumber::Scenario

Inherits:
Object
  • Object
show all
Defined in:
allure-cucumber/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 'allure-cucumber/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)


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

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>)


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

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

#feature_file_nameString

Feature file name

Returns:

  • (String)


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

def feature_file_name
  @feature_file_name ||= test_case.location.file.split("/").last.gsub(".feature", "")
end

#feature_folderString

Feature folder

Returns:

  • (String)


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

def feature_folder
  @feature_folder ||= test_case.location.file.split("/")[-2]
end

#feature_nameString

Feature name scenario belongs to

Returns:

  • (String)


24
25
26
# File 'allure-cucumber/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 'allure-cucumber/lib/allure_cucumber/models/scenario.rb', line 18

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

#nameString

Scenario name

Returns:

  • (String)


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

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

#tagsArray<String>

Scenario tags

Returns:

  • (Array<String>)


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

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