Package net.thucydides.core.steps
Class StepEventBus
java.lang.Object
net.thucydides.core.steps.StepEventBus
- Direct Known Subclasses:
SilentEventBus
public class StepEventBus
extends java.lang.Object
An event bus for Step-related notifications.
Use this to integrate Thucydides listeners with testing tools.
You create a listener (e.g. an instance of BaseStepListener, or your own), register it using
'registerListener', and then implement the various methods (testStarted(), stepStarted()). Thucydides
will call these events on your listener as they occur.
You can register a new Thucydides listener by implementing the StepListener interface and
placing your class in the classpath. Thucydides will automatically detect the listener and add it to the
registered listeners. It will load custom listeners automatically when a test starts for the first time.
-
Constructor Summary
Constructors Constructor Description StepEventBus(EnvironmentVariables environmentVariables)
-
Method Summary
Modifier and Type Method Description void
addDescriptionToCurrentTest(java.lang.String description)
void
addIssuesToCurrentStory(java.util.List<java.lang.String> issues)
void
addIssuesToCurrentTest(java.util.List<java.lang.String> issues)
void
addNewExamplesFrom(DataTable newTable)
void
addTagsToCurrentStory(java.util.List<TestTag> tags)
void
addTagsToCurrentTest(java.util.List<TestTag> tags)
boolean
areStepsRunning()
boolean
assumptionViolated()
void
assumptionViolated(java.lang.String message)
boolean
aStepInTheCurrentTestHasFailed()
void
cancelPreviousTest()
void
castActor(java.lang.String name)
void
clear()
static void
clearEventBusFor(java.lang.Object key)
void
clearStepFailures()
boolean
currentTestIsSuspended()
boolean
currentTestOutcomeIsDataDriven()
void
disableSoftAsserts()
void
dropAllListeners()
void
dropListener(StepListener stepListener)
void
enableDryRun()
void
enableSoftAsserts()
static StepEventBus
eventBusFor(java.lang.Object key)
void
exampleFinished()
void
exampleStarted(java.util.Map<java.lang.String,java.lang.String> data)
void
exampleStarted(java.util.Map<java.lang.String,java.lang.String> data, java.lang.String exampleName)
void
exceptionExpected(java.lang.Class<? extends java.lang.Throwable> expected)
protected java.util.List<StepListener>
getAllListeners()
java.lang.String
getAssumptionViolatedMessage()
BaseStepListener
getBaseStepListener()
java.util.Optional<TestStep>
getCurrentStep()
EnvironmentVariables
getEnvironmentVariables()
static StepEventBus
getEventBus()
The event bus used to inform listening classes about when tests and test steps start and finish.java.util.Optional<TestResult>
getForcedResult()
java.lang.String
getTestSource()
void
initialiseSession()
boolean
isBaseStepListenerRegistered()
boolean
isCurrentTestDataDriven()
boolean
isDryRun()
boolean
isUniqueSession()
void
lastStepFailed(StepFailure failure)
void
lastTestPassedAfterRetries(int remainingTries, java.util.List<java.lang.String> failureMessages, TestFailureCause testFailureCause)
void
mergePreviousStep()
void
notifyScreenChange()
static void
overrideEventBusWith(StepEventBus stepEventBus)
void
reenableWebDriver()
void
reenableWebdriverCalls()
StepEventBus
registerListener(StepListener listener)
Register a listener to receive notification at different points during a test's execution.void
reset()
java.util.Optional<TestResult>
resultSoFar()
void
setAllStepsTo(TestResult result)
Set all steps in the current test outcome to a given result.void
setBackgroundDescription(java.lang.String description)
void
setBackgroundTitle(java.lang.String title)
static void
setCurrentBusToEventBusFor(java.lang.Object key)
void
setRule(Rule rule)
void
setTestSource(java.lang.String testSource)
void
setUniqueSession(boolean uniqueSession)
void
skippedStepStarted(ExecutedStepDescription executedStepDescription)
Record a step that is not scheduled to be executed (e.g.boolean
softAssertsActive()
void
stepFailed(StepFailure failure)
void
stepFinished()
void
stepIgnored()
void
stepPending()
void
stepPending(java.lang.String message)
void
stepStarted(ExecutedStepDescription stepDescription)
Start the execution of a test step.void
stepStarted(ExecutedStepDescription stepDescription, boolean isPrecondition)
Start the execution of a test step.void
suspendTest()
void
suspendTest(TestResult result)
void
takeScreenshot()
Forces Thucydides to take a screenshot now.void
temporarilySuspendWebdriverCalls()
void
testFailed(java.lang.Throwable cause)
The test failed, but not during the execution of a step.void
testFinished()
void
testFinished(boolean inDataDrivenTest)
void
testFinished(TestOutcome result)
void
testIgnored()
void
testIsManual()
Mark the current test method as pending.void
testPending()
Mark the current test method as pending.void
testRetried()
void
testRunFinished()
void
testSkipped()
void
testStarted(java.lang.String testName)
void
testStarted(java.lang.String newTestName, java.lang.Class<?> testClass)
void
testStarted(java.lang.String testName, java.lang.String id)
void
testStarted(java.lang.String newTestName, Story story)
void
testSuiteFinished()
boolean
testSuiteHasStarted()
void
testSuiteStarted(java.lang.Class<?> testClass)
void
testSuiteStarted(Story story)
void
unsuspend()
Removes a test suspensionvoid
updateCurrentStepTitle(java.lang.String stepTitle)
void
updateCurrentStepTitleAsPrecondition(java.lang.String stepTitle)
void
updateExampleLineNumber(int lineNumber)
void
updateOverallResults()
void
useExamplesFrom(DataTable table)
void
useScenarioOutline(java.lang.String scenarioOutline)
boolean
webdriverCallsAreSuspended()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
StepEventBus
-
-
Method Details
-
getEventBus
The event bus used to inform listening classes about when tests and test steps start and finish. There is a separate event bus for each thread. -
eventBusFor
-
setCurrentBusToEventBusFor
public static void setCurrentBusToEventBusFor(java.lang.Object key) -
clearEventBusFor
public static void clearEventBusFor(java.lang.Object key) -
getEnvironmentVariables
-
registerListener
Register a listener to receive notification at different points during a test's execution. If you are writing your own listener, you shouldn't need to call this method - just set up your listener implementation as a service (see http://download.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html), place the listener class on the classpath and it will be detected automatically. -
isBaseStepListenerRegistered
public boolean isBaseStepListenerRegistered() -
getBaseStepListener
-
testStarted
public void testStarted(java.lang.String testName) -
testStarted
public void testStarted(java.lang.String testName, java.lang.String id) -
isUniqueSession
public boolean isUniqueSession() -
setUniqueSession
public void setUniqueSession(boolean uniqueSession) -
testStarted
-
testStarted
public void testStarted(java.lang.String newTestName, java.lang.Class<?> testClass) -
getAllListeners
-
testSuiteStarted
public void testSuiteStarted(java.lang.Class<?> testClass) -
updateExampleLineNumber
public void updateExampleLineNumber(int lineNumber) -
testSuiteStarted
-
clear
public void clear() -
unsuspend
public void unsuspend()Removes a test suspension -
testFinished
public void testFinished(boolean inDataDrivenTest) -
testFinished
public void testFinished() -
testFinished
-
testRetried
public void testRetried() -
clearStepFailures
public void clearStepFailures() -
aStepInTheCurrentTestHasFailed
public boolean aStepInTheCurrentTestHasFailed() -
isCurrentTestDataDriven
public boolean isCurrentTestDataDriven() -
stepStarted
Start the execution of a test step. -
stepStarted
Start the execution of a test step. -
skippedStepStarted
Record a step that is not scheduled to be executed (e.g. a skipped or ignored step). -
stepFinished
public void stepFinished() -
stepFailed
-
lastStepFailed
-
stepIgnored
public void stepIgnored() -
stepPending
public void stepPending() -
stepPending
public void stepPending(java.lang.String message) -
assumptionViolated
public void assumptionViolated(java.lang.String message) -
dropListener
-
dropAllListeners
public void dropAllListeners() -
reenableWebDriver
public void reenableWebDriver() -
webdriverCallsAreSuspended
public boolean webdriverCallsAreSuspended() -
reenableWebdriverCalls
public void reenableWebdriverCalls() -
temporarilySuspendWebdriverCalls
public void temporarilySuspendWebdriverCalls() -
testFailed
public void testFailed(java.lang.Throwable cause)The test failed, but not during the execution of a step.- Parameters:
cause
- the underlying cause of the failure.
-
testPending
public void testPending()Mark the current test method as pending. The test will stil be executed to record the steps, but any webdriver calls will be skipped. -
testIsManual
public void testIsManual()Mark the current test method as pending. The test will stil be executed to record the steps, but any webdriver calls will be skipped. -
suspendTest
public void suspendTest() -
suspendTest
-
useScenarioOutline
public void useScenarioOutline(java.lang.String scenarioOutline) -
currentTestIsSuspended
public boolean currentTestIsSuspended() -
assumptionViolated
public boolean assumptionViolated() -
testIgnored
public void testIgnored() -
testSkipped
public void testSkipped() -
areStepsRunning
public boolean areStepsRunning() -
notifyScreenChange
public void notifyScreenChange() -
testSuiteFinished
public void testSuiteFinished() -
testRunFinished
public void testRunFinished() -
updateCurrentStepTitle
public void updateCurrentStepTitle(java.lang.String stepTitle) -
updateCurrentStepTitleAsPrecondition
public void updateCurrentStepTitleAsPrecondition(java.lang.String stepTitle) -
addIssuesToCurrentStory
public void addIssuesToCurrentStory(java.util.List<java.lang.String> issues) -
addIssuesToCurrentTest
public void addIssuesToCurrentTest(java.util.List<java.lang.String> issues) -
addTagsToCurrentTest
-
addTagsToCurrentStory
-
addDescriptionToCurrentTest
public void addDescriptionToCurrentTest(java.lang.String description) -
setBackgroundTitle
public void setBackgroundTitle(java.lang.String title) -
setBackgroundDescription
public void setBackgroundDescription(java.lang.String description) -
setRule
-
useExamplesFrom
-
addNewExamplesFrom
-
exampleStarted
public void exampleStarted(java.util.Map<java.lang.String,java.lang.String> data) -
exampleStarted
public void exampleStarted(java.util.Map<java.lang.String,java.lang.String> data, java.lang.String exampleName) -
exampleFinished
public void exampleFinished() -
currentTestOutcomeIsDataDriven
public boolean currentTestOutcomeIsDataDriven() -
takeScreenshot
public void takeScreenshot()Forces Thucydides to take a screenshot now. -
testSuiteHasStarted
public boolean testSuiteHasStarted() -
getAssumptionViolatedMessage
public java.lang.String getAssumptionViolatedMessage() -
getCurrentStep
-
setAllStepsTo
Set all steps in the current test outcome to a given result. Used to set all steps to PENDING or SKIPPED, for example.- Parameters:
result
-
-
getForcedResult
-
isDryRun
public boolean isDryRun() -
enableDryRun
public void enableDryRun() -
exceptionExpected
public void exceptionExpected(java.lang.Class<? extends java.lang.Throwable> expected) -
resultSoFar
-
mergePreviousStep
public void mergePreviousStep() -
updateOverallResults
public void updateOverallResults() -
reset
public void reset() -
disableSoftAsserts
public void disableSoftAsserts() -
enableSoftAsserts
public void enableSoftAsserts() -
softAssertsActive
public boolean softAssertsActive() -
getTestSource
public java.lang.String getTestSource() -
setTestSource
public void setTestSource(java.lang.String testSource) -
cancelPreviousTest
public void cancelPreviousTest() -
lastTestPassedAfterRetries
public void lastTestPassedAfterRetries(int remainingTries, java.util.List<java.lang.String> failureMessages, TestFailureCause testFailureCause) -
overrideEventBusWith
-
castActor
public void castActor(java.lang.String name) -
initialiseSession
public void initialiseSession()
-