Я решил это, выполнив следующее:
- Расширение BlockJUnit4Runner
- Переопределение метода runChild (), так как именно здесь принимаются тестовые уведомления
- Написание собственного метода runLeaf (), так как именно здесь запускаются уведомители теста для уведомления о начале или остановке теста.
- Переопределение метода methodInvoker (), поскольку именно здесь вызывается метод теста
- Создание нового класса Statement, который функционально выполняет тот же набор действий, что и объект оператора invokeMethod (), созданный в methodInvoker. Этот класс, тем не менее, получает уведомление о тестировании, что позволяет вам контролировать, как и когда тест считается начатым.
Одна из проблем вышеуказанного подхода заключается в том, что вам потребуется извлечь фрагменты кода, которые помогите запустить правила JUnit, чтобы сохранить выполнение правил, так как эти методы странно закрыты.