Class BMUnitRunner

java.lang.Object
org.junit.runner.Runner
org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
org.junit.runners.BlockJUnit4ClassRunner
org.jboss.byteman.contrib.bmunit.BMUnitRunner
All Implemented Interfaces:
org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Orderable, org.junit.runner.manipulation.Sortable

public class BMUnitRunner extends org.junit.runners.BlockJUnit4ClassRunner
Specialisation of the BlockJUnit4ClassRunner Runner class which can be attached to a text class using the @RunWith annotation. It ensures that Byteman rules are loaded and unloaded for tests which are annotated with an @Byteman annotation
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final BMRunnerUtil
     
    private BMUnitConfig
     
    (package private) BMRules
     
    (package private) BMScripts
     
    (package private) BMRule
     
    (package private) BMScript
     
    (package private) Class<?>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    BMUnitRunner(Class<?> klass)
    Creates a BMUnitRunner to run test in klass
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.junit.runners.model.Statement
    addClassConfigLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    addClassMultiRuleLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    addClassMultiScriptLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    addClassSingleRuleLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    addClassSingleScriptLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    addMethodConfigLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
     
    protected org.junit.runners.model.Statement
    addMethodMultiRuleLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
    wrap the test method execution statement with the necessary load and unload calls if it has a BMRules annotation
    protected org.junit.runners.model.Statement
    addMethodMultiScriptLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
    wrap the test method execution statement with the necessary load and unload calls if it has a BMScripts annotation
    protected org.junit.runners.model.Statement
    addMethodSingleRuleLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
    wrap the test method execution statement with the necessary load and unload calls if it has a BMRule annotation
    protected org.junit.runners.model.Statement
    addMethodSingleScriptLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
    wrap the test method execution statement with the necessary load and unload calls if it has a BMScript annotation
    protected org.junit.runners.model.Statement
    childrenInvoker(org.junit.runner.notification.RunNotifier notifier)
     
    protected org.junit.runners.model.Statement
    methodInvoker(org.junit.runners.model.FrameworkMethod method, Object test)
     

    Methods inherited from class org.junit.runners.BlockJUnit4ClassRunner

    collectInitializationErrors, computeTestMethods, createTest, createTest, describeChild, getChildren, getTestRules, isIgnored, methodBlock, possiblyExpectingExceptions, rules, runChild, testName, validateConstructor, validateFields, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor, withAfters, withBefores, withPotentialTimeout

    Methods inherited from class org.junit.runners.ParentRunner

    classBlock, classRules, createTestClass, filter, getDescription, getName, getRunnerAnnotations, getTestClass, order, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses, withInterruptIsolation

    Methods inherited from class org.junit.runner.Runner

    testCount

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • classConfigAnnotation

      private BMUnitConfig classConfigAnnotation
    • classSingleScriptAnnotation

      BMScript classSingleScriptAnnotation
    • classMultiScriptAnnotation

      BMScripts classMultiScriptAnnotation
    • classMultiRuleAnnotation

      BMRules classMultiRuleAnnotation
    • classSingleRuleAnnotation

      BMRule classSingleRuleAnnotation
    • testKlazz

      Class<?> testKlazz
    • BMRunnerUtil

      private final BMRunnerUtil BMRunnerUtil
  • Constructor Details

    • BMUnitRunner

      public BMUnitRunner(Class<?> klass) throws org.junit.runners.model.InitializationError
      Creates a BMUnitRunner to run test in klass
      Parameters:
      klass - idenitifies the Java class containing the tests
      Throws:
      org.junit.runners.model.InitializationError - if the test class is malformed.
  • Method Details

    • childrenInvoker

      protected org.junit.runners.model.Statement childrenInvoker(org.junit.runner.notification.RunNotifier notifier)
      Overrides:
      childrenInvoker in class org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
    • addClassConfigLoader

      protected org.junit.runners.model.Statement addClassConfigLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
    • addClassSingleScriptLoader

      protected org.junit.runners.model.Statement addClassSingleScriptLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
    • addClassMultiScriptLoader

      protected org.junit.runners.model.Statement addClassMultiScriptLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
    • addClassMultiRuleLoader

      protected org.junit.runners.model.Statement addClassMultiRuleLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
    • addClassSingleRuleLoader

      protected org.junit.runners.model.Statement addClassSingleRuleLoader(org.junit.runners.model.Statement statement, org.junit.runner.notification.RunNotifier notifier)
    • methodInvoker

      protected org.junit.runners.model.Statement methodInvoker(org.junit.runners.model.FrameworkMethod method, Object test)
      Overrides:
      methodInvoker in class org.junit.runners.BlockJUnit4ClassRunner
    • addMethodConfigLoader

      protected org.junit.runners.model.Statement addMethodConfigLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
    • addMethodSingleScriptLoader

      protected org.junit.runners.model.Statement addMethodSingleScriptLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
      wrap the test method execution statement with the necessary load and unload calls if it has a BMScript annotation
      Parameters:
      statement - the statement to be evaluated
      method - the method being tested
      Returns:
      the statement possibly wrapped with load and unload calls
    • addMethodMultiScriptLoader

      protected org.junit.runners.model.Statement addMethodMultiScriptLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
      wrap the test method execution statement with the necessary load and unload calls if it has a BMScripts annotation
      Parameters:
      statement - the statement to be evaluated
      method - the method being tested
      Returns:
      the statement possibly wrapped with load and unload calls
    • addMethodMultiRuleLoader

      protected org.junit.runners.model.Statement addMethodMultiRuleLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
      wrap the test method execution statement with the necessary load and unload calls if it has a BMRules annotation
      Parameters:
      statement - the statement to be evaluated
      method - the method being tested
      Returns:
      the statement possibly wrapped with load and unload calls
    • addMethodSingleRuleLoader

      protected org.junit.runners.model.Statement addMethodSingleRuleLoader(org.junit.runners.model.Statement statement, org.junit.runners.model.FrameworkMethod method)
      wrap the test method execution statement with the necessary load and unload calls if it has a BMRule annotation
      Parameters:
      statement - the statement to be evaluated
      method - the method being tested
      Returns:
      the statement possibly wrapped with load and unload calls