У нас есть тестовые классы, построенные на SpringTT 2.0.8 AbstractTransactionalDataSourceSpringContextTests. Их огромное количество, все они написаны в стиле JUnit3.
Чтобы использовать фильтрацию JUnit 4, мы создали заменяющий JUnit38Runner, который позволяет сопоставить эти тесты с конкретной средой приложения и соответствующим образом отфильтровать их.
Весь набор тестов отлично работает за пределами Ant, используя аннотацию @RunWith в нашем пользовательском JUnit38Runner.
Однако, когда мы пытаемся запустить в Ant, он заставляет отдельные тесты запускаться либо как junit.framework.TestSuite, либо в виде JUnit4TestAdapter, оба из которых игнорируют аннотации @RunWith в JUnit4. Что еще хуже, наши существующие наборы явно переопределены Ant, который вызывает методы suite () напрямую, а не делегирует JUnit.
Я попытался выйти из Ant JUnitTestRunner и просто переопределить метод run (), однако класс просто не написан для расширения.
Помимо копирования всего JUnitTestRunner и его взлома (который откроет нам проблемы с хрупким кодом), кому-нибудь повезло с другими подходами к решению этой проблемы?