Class JUnit4Provider

java.lang.Object
org.apache.maven.surefire.api.provider.AbstractProvider
org.apache.maven.surefire.junit4.JUnit4Provider
All Implemented Interfaces:
SurefireProvider

public class JUnit4Provider extends AbstractProvider
  • Field Details

  • Constructor Details

  • Method Details

    • invoke

      public RunResult invoke(Object forkTestSet) throws TestSetFailedException
      Description copied from interface: SurefireProvider
      Runs a forked test
      Parameters:
      forkTestSet - An item from the iterator in #getSuites. Will be null for forkmode never or always. When this is non-null, the forked process will run only that test and probably not scan the classpath
      Returns:
      A result of the invocation
      Throws:
      TestSetFailedException - When testset fails
    • setTestsToRun

      private void setTestsToRun(Object forkTestSet) throws TestSetFailedException
      Throws:
      TestSetFailedException
    • isRerunFailingTests

      private boolean isRerunFailingTests()
    • isFailFast

      private boolean isFailFast()
    • getSkipAfterFailureCount

      private int getSkipAfterFailureCount()
    • registerShutdownListener

      private void registerShutdownListener(TestsToRun testsToRun)
    • registerPleaseStopJUnitListener

      private void registerPleaseStopJUnitListener(Notifier notifier)
    • executeTestSet

      private void executeTestSet(Class<?> clazz, RunListener reporter, Notifier notifier, RunModeSetter runMode)
    • executeWithRerun

      private void executeWithRerun(Class<?> clazz, Notifier notifier, RunModeSetter runMode)
    • getSuites

      public Iterable<Class<?>> getSuites()
      Description copied from interface: SurefireProvider
      Determines the number of forks.
      Called when forkmode is different from "never" or "always", allows the provider to define how to behave for the fork.
      Returns:
      An iterator that will trigger one fork per item
    • scanClassPath

      private TestsToRun scanClassPath()
    • upgradeCheck

      private void upgradeCheck() throws TestSetFailedException
      Throws:
      TestSetFailedException
    • createTestsDescription

      static org.junit.runner.Description createTestsDescription(Iterable<Class<?>> classes)
    • isJUnit4UpgradeCheck

      private static boolean isJUnit4UpgradeCheck()
    • execute

      private static void execute(Class<?> testClass, Notifier notifier, org.junit.runner.manipulation.Filter filter)
    • countTestsInRunner

      private static int countTestsInRunner(org.junit.runner.Description description)
      JUnit error: test count includes one test-class as a suite which has filtered out all children. Then the child test has a description "initializationError0(org.junit.runner.manipulation.Filter)" for JUnit 4.0 or "initializationError(org.junit.runner.manipulation.Filter)" for JUnit 4.12 and Description#isTest() returns true, but this description is not a real test and therefore it should not be included in the entire test count.
    • hasFilteredOutAllChildren

      private static boolean hasFilteredOutAllChildren(org.junit.runner.Description description)
    • createMethodFilter

      private org.junit.runner.manipulation.Filter createMethodFilter()