All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cucumber.scala.Scenario.scala Maven / Gradle / Ivy

There is a newer version: 8.25.1
Show newest version
package io.cucumber.scala

import java.net.URI
import java.util

import io.cucumber.core.backend.{Status, TestCaseState}

/** Before or After Hooks that declare a parameter of this type will receive an instance of this class.
  * It allows writing text and embedding media into reports, as well as inspecting results (in an After block).
  * 

* Note: This class is not intended to be used to create reports. To create custom reports use * the `io.cucumber.plugin.Plugin` class. The plugin system provides a much richer access to Cucumbers then * hooks after could provide. For an example see `io.cucumber.core.plugin.PrettyFormatter`. */ class Scenario(val delegate: TestCaseState) { /** @return tags of this scenario. */ def getSourceTagNames: util.Collection[String] = delegate.getSourceTagNames /** Returns the current status of this test case. *

* The test case status is calculate as the most severe status of the * executed steps in the testcase so far. * * @return the current status of this test case */ def getStatus: Status = Status.valueOf(delegate.getStatus.name) /** @return true if and only if `getStatus` returns "failed" */ def isFailed: Boolean = delegate.isFailed /** Attach data to the report(s). *

    * {@code
    * // Attach a screenshot. See your UI automation tool's docs for
    * // details about how to take a screenshot.
    * scenario.attach(pngBytes, "image/png", "Bartholomew and the Bytes of the Oobleck");
    * }
    * 
*

* To ensure reporting tools can understand what the data is a * {@code mediaType} must be provided. For example: {@code text/plain}, * {@code image/png}, {@code text/html;charset=utf-8}. *

* Media types are defined in RFC 7231 Section 3.1.1.1. * * @param data what to attach, for example an image. * @param mediaType what is the data? * @param name attachment name */ def attach(data: Array[Byte], mediaType: String, name: String): Unit = { delegate.attach(data, mediaType, name) } /** Attaches some text based data to the report. * * @param data what to attach, for example html. * @param mediaType what is the data? * @param name attachment name * @see #attach(byte[], String, String) */ def attach(data: String, mediaType: String, name: String): Unit = { delegate.attach(data, mediaType, name) } /** Outputs some text into the report. * * @param text what to put in the report. */ def log(text: String): Unit = { delegate.log(text) } /** @return the name of the Scenario */ def getName: String = delegate.getName /** Returns the unique identifier for this scenario. *

* If this is a Scenario from Scenario Outlines this will return the id of * the example row in the Scenario Outline. *

* The id is not stable across multiple executions of Cucumber but does * correlate with ids used in messages output. Use the uri + line number to * obtain a somewhat stable identifier of a scenario. * * @return the id of the Scenario. */ def getId: String = delegate.getId /** @return the uri of the Scenario. */ def getUri: URI = delegate.getUri /** Returns the line in the feature file of the Scenario. *

* If this is a Scenario from Scenario Outlines this will return the line of * the example row in the Scenario Outline. * * @return the line in the feature file of the Scenario */ def getLine: Integer = delegate.getLine }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy