Как я могу запустить пользовательский JUnit4 Runner в тестовых классах JUnit3 с помощью Ant?

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

8
задан Matt 20 April 2011 в 00:52
поделиться