Что вы можете сделать, если вы хотите использовать JUnit в таком случае, - предоставить альтернативную или измененную версию используемого тестера. Просто установите флаг отладки внутри тестового примера и отладьте то, что происходит после него. Рано или поздно вы попадаете в реализацию программы тестирования в нужном месте.
Теперь твое время. Просто скопируйте класс в вашу папку src (вы можете использовать дополнительную папку src или внутри вашего src / test / java, чтобы не испортить вашу базу кода). Теперь измените класс (должен быть в оригинальной упаковке и с оригинальным именем класса) любым удобным для вас способом.
Самое интересное в том, что путь к классам создается (с помощью eclipse / и других), и ваши классы загружаются первыми загрузчиком начальной загрузки. Таким образом, предоставленная вами версия будет выбрана первой до того, как будет загружена исходная версия junit.
Теперь вы можете вызывать что-то вроде расширения тестового прогона (или как вы хотите это называть) и иметь полный контроль над всем, поскольку вы находитесь в том же пакете, что и исходные классы.
Я для себя просто расширил его, чтобы упорядочить методы так, как они объявлены в файле класса (для получения правильного порядка методов используется asm для чтения файла класса).
Также я добавил поведение для сканирования пакетов и вложенных пакетов на наличие дополнительных тестов, поэтому мне не нужно использовать пакет или даже давать ему некоторые классы для сборки. Подкласс теперь создается на лету, обнаруживая дополнительные контрольные примеры. Это также верно для моего номера. Иногда мне нужны все тесты в определенном субпакете, поэтому я добавляю класс, аннотированный с помощью suite.
Это все остальное делает бегун, составляя сюиту. Можно даже добавить аннотации к игре. Поэтому я аннотирую такие тесты, как @Fast, и запускаю только быстрые тесты в моем тестовом средстве, поскольку набор также помечается как @Fast. Вы получили это.