Class FeaturesRunner

  • All Implemented Interfaces:
    org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Orderable, org.junit.runner.manipulation.Sortable
    Direct Known Subclasses:
    FeaturesRunnerWithParms

    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 Detail

      • CUSTOM_ENVIRONMENT_SYSTEM_PROPERTY

        protected static final String CUSTOM_ENVIRONMENT_SYSTEM_PROPERTY
        Since:
        11.1
        See Also:
        Constant Field Values
      • injector

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

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

        protected Object underTest
    • Constructor Detail

      • FeaturesRunner

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

      • getBuildDirectory

        public static String getBuildDirectory()
        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
      • getAnnotations

        public <T extends AnnotationList<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 AnnotationList<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 AnnotationList<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 AnnotationList<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
      • 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,
                             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)
      • 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