Interface DDTestModule

All Known Implementing Classes:
NoOpDDTestModule

public interface DDTestModule
This interface represents a test module, i.e. a set of test suites. This typically corresponds to a project module (e.g. Maven submodule or Gradle subproject).
  • Method Details

    • setTag

      void setTag(String key, Object value)
      Adds an arbitrary tag to the module
      Parameters:
      key - The name of the tag
      value - The value of the tag
    • setErrorInfo

      void setErrorInfo(Throwable error)
      Marks the module as failed.

      This method should be used to signal a failure that is not related to a specific suite or a test case, but rather to the module as a whole (e.g. a failure in a setup/teardown logic that is executed once per module). If an individual test suite the module fails, there is no need to explicitly signal it to the module object: the status of the module will reflect individual suite failures automatically.

      This does not imply the end of module execution, so end(Long) method has to be invoked at some point after this one.

      Parameters:
      error - Optional exception that caused the module to fail
    • setSkipReason

      void setSkipReason(String skipReason)
      Marks the module as skipped.

      This does not imply the end of module execution, so end(Long) method has to be invoked at some point after this one.

      Parameters:
      skipReason - Optional reason for skipping the module
    • end

      void end(@Nullable Long endTime)
      Marks the end of module execution.

      Unless either setErrorInfo(Throwable) or setSkipReason(String) were invoked prior to calling this method, the status of the module will be calculated based on the statuses of individual test suites that were executed in scope of the module.

      The method must be called once for each module instance.

      The call does not have to be made in the same thread where the module was started.

      Parameters:
      endTime - Optional finish time in microseconds. If null is supplied, current time will be assumed
    • testSuiteStart

      default DDTestSuite testSuiteStart(String testSuiteName, @Nullable Class<?> testClass, @Nullable Long startTime)
      Marks the start of a new test suite in the module.
      Parameters:
      testSuiteName - The name of the suite
      testClass - Optional class that corresponds to the test suite.
      startTime - Optional start time in microseconds. If null is supplied, current time will be assumed
      Returns:
      Handle to the test suite instance
    • testSuiteStart

      DDTestSuite testSuiteStart(String testSuiteName, @Nullable Class<?> testClass, @Nullable Long startTime, boolean parallelized)
      Marks the start of a new test suite in the module.
      Parameters:
      testSuiteName - The name of the suite
      testClass - Optional class that corresponds to the test suite.
      startTime - Optional start time in microseconds. If null is supplied, current time will be assumed
      parallelized - Whether test cases from this suite will be executed concurrently in multiple threads
      Returns:
      Handle to the test suite instance