Class FeaturesRunner

java.lang.Object
org.junit.runner.Runner
org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
org.junit.runners.BlockJUnit4ClassRunner
org.nuxeo.runtime.test.runner.FeaturesRunner
All Implemented Interfaces:
org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Orderable, org.junit.runner.manipulation.Sortable

public class FeaturesRunner extends org.junit.runners.BlockJUnit4ClassRunner
A Test Case runner that can be extended through features and provide injection though Guice.
Author:
Bogdan Stefanescu
  • Field Details

    • scanner

      protected static final AnnotationScanner scanner
    • injector

      protected com.google.inject.Injector injector
      Guice injector.
    • loader

      protected final org.nuxeo.runtime.test.runner.FeaturesLoader loader
    • locator

      protected final TargetResourceLocator locator
    • underTest

      protected Object underTest
  • Constructor Details

    • FeaturesRunner

      public FeaturesRunner(Class<?> classToRun) throws org.junit.runners.model.InitializationError
      Throws:
      org.junit.runners.model.InitializationError
  • Method Details

    • getScanner

      public static AnnotationScanner getScanner()
    • getBuildDirectory

      @Deprecated(since="2025.0", forRemoval=true) public static String getBuildDirectory()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the Maven build directory, depending on the custom.environment system property.
      Since:
      11.1
    • getTargetTestClass

      public Class<?> getTargetTestClass()
    • getTargetTestInstance

      public Object getTargetTestInstance()
      May return null if the test class was not yet instantiated
    • getTargetTestBasepath

      @Deprecated(since="11.1") public Path getTargetTestBasepath()
      Deprecated.
      since 11.1, seems unused
    • getTargetTestResource

      public URL getTargetTestResource(String name) throws IOException
      Throws:
      IOException
    • getFeatures

      public Iterable<RunnerFeature> getFeatures()
    • getAnnotations

      public <T extends Annotation> List<T> getAnnotations(Class<T> type)
      Returns the list of annotations present on the test class, then on the interfaces implemented by the test class, then on its super class, then on the different features.
      Returns:
      the list of annotations for the current test
      Since:
      2021.15
    • getAnnotations

      public <T extends Annotation> List<T> getAnnotations(Class<T> type, org.junit.runners.model.FrameworkMethod method)
      Returns the list of annotations for the given method.
      Returns:
      the list of annotations for the given method
      Since:
      2021.15
    • getMethodOrTestAnnotations

      public <T extends Annotation> List<T> getMethodOrTestAnnotations(Class<T> type, @Nullable org.junit.runners.model.FrameworkMethod method)
      Returns the list of annotations for the given method if the method is given, otherwise return the list of annotations for the current test.

      This is a convenient method for feature that has the same code to execute for before class and before method steps.

      Returns:
      the list of annotations for the given method
      Since:
      2021.15
    • getMethodAnnotationsWithClassFallback

      public <T extends Annotation> List<T> getMethodAnnotationsWithClassFallback(Class<T> type, @Nullable org.junit.runners.model.FrameworkMethod method)
      Returns the list of annotations for the given method, if no annotation has been found, get the annotations for the current test.
      Returns:
      the list of annotations for the given method, if they exist, otherwise the list of annotations for the current test
      Since:
      2021.15
    • getConfig

      public <T extends Annotation> T getConfig(Class<T> type)
      Since:
      5.6
    • getConfig

      public <T extends Annotation> T getConfig(org.junit.runners.model.FrameworkMethod method, Class<T> type)
      Get the annotation on the test method, if no annotation has been found, get the annotation from the test class (See getConfig(Class))
      Since:
      5.7
    • computeTestMethods

      protected List<org.junit.runners.model.FrameworkMethod> computeTestMethods()
      Overrides:
      computeTestMethods in class org.junit.runners.BlockJUnit4ClassRunner
    • initialize

      protected void initialize() throws Exception
      Throws:
      Exception
    • beforeRun

      protected void beforeRun()
    • beforeMethodRun

      protected void beforeMethodRun(org.junit.runners.model.FrameworkMethod method, Object test)
    • afterMethodRun

      protected void afterMethodRun(org.junit.runners.model.FrameworkMethod method, Object test)
    • afterRun

      protected void afterRun()
    • start

      protected void start()
    • stop

      protected void stop()
    • beforeSetup

      protected void beforeSetup(org.junit.runners.model.FrameworkMethod method, Object test)
    • afterTeardown

      protected void afterTeardown(org.junit.runners.model.FrameworkMethod method, Object test)
    • apply

      protected void apply(String id, FeaturesRunner.Direction direction, ThrowableConsumer<org.nuxeo.runtime.test.runner.FeaturesLoader.Holder,Exception> consumer)
      Since:
      11.1
    • apply

      protected void apply(String id, Collection<org.nuxeo.runtime.test.runner.FeaturesLoader.Holder> holders, ThrowableConsumer<org.nuxeo.runtime.test.runner.FeaturesLoader.Holder,Exception> consumer)
      Since:
      11.1
    • formatFeatures

      protected String formatFeatures(Collection<org.nuxeo.runtime.test.runner.FeaturesLoader.Holder> holders)
    • evaluateRunnable

      public void evaluateRunnable(ThrowableRunnable<Throwable> runnable, ThrowableRunnable<Throwable> finisher) throws Throwable
      Throws:
      Throwable
    • throwSeriousError

      protected void throwSeriousError(Throwable cause)
    • getInjector

      public com.google.inject.Injector getInjector()
    • onInjector

      protected com.google.inject.Injector onInjector(org.junit.runner.notification.RunNotifier aNotifier)
    • withAfterClasses

      protected org.junit.runners.model.Statement withAfterClasses(org.junit.runners.model.Statement statement)
      Overrides:
      withAfterClasses in class org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
    • classBlock

      protected org.junit.runners.model.Statement classBlock(org.junit.runner.notification.RunNotifier aNotifier)
      Overrides:
      classBlock in class org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
    • classRules

      protected List<org.junit.rules.TestRule> classRules()
      Overrides:
      classRules in class org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
    • withBefores

      protected org.junit.runners.model.Statement withBefores(org.junit.runners.model.FrameworkMethod method, Object target, org.junit.runners.model.Statement statement)
      Overrides:
      withBefores in class org.junit.runners.BlockJUnit4ClassRunner
    • withAfters

      protected org.junit.runners.model.Statement withAfters(org.junit.runners.model.FrameworkMethod method, Object target, org.junit.runners.model.Statement statement)
      Overrides:
      withAfters in class org.junit.runners.BlockJUnit4ClassRunner
    • getTestRules

      protected List<org.junit.rules.TestRule> getTestRules(Object target)
      Overrides:
      getTestRules in class org.junit.runners.BlockJUnit4ClassRunner
    • rules

      protected List<org.junit.rules.MethodRule> rules(Object target)
      Overrides:
      rules in class org.junit.runners.BlockJUnit4ClassRunner
    • createTest

      public Object createTest() throws Exception
      Overrides:
      createTest in class org.junit.runners.BlockJUnit4ClassRunner
      Throws:
      Exception
    • validateZeroArgConstructor

      protected void validateZeroArgConstructor(List<Throwable> errors)
      Overrides:
      validateZeroArgConstructor in class org.junit.runners.BlockJUnit4ClassRunner
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getFeature

      public <T extends RunnerFeature> T getFeature(Class<T> aType)