У нас есть тестовые классы, которые построены на Spring 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 и его взлома (что откроет нам проблемы с нестабильным кодом), кому-нибудь повезло с другими подходами к решению этой проблемы?