Запустите все тесты в Junit 4

Я хочу быть в состоянии запустить все тесты в проекте программно. Я знаю, что Eclipse имеет "Выполненный как тестовая конфигурация" JUnit, которая так или иначе захватывает все тесты в проекте и выполняет их. Есть ли какой-либо способ для меня также захватить список тестов программно и выполнить их? Или есть ли некоторый хороший способ создать набор тестов, содержащий все тестовые сценарии, вручную не перечисляя всех (все 700 +) их?

Я попробовал опцию "New...-> Test Suite" в Eclipse, но это, кажется, работает только на JUnit 3, определяя тесты их расширением от TestCase

Тестовые классы являются JUnit 4, таким образом, их единственная характеристика различения является аннотацией, никаким соглашением о присвоении имен, никаким разделением на подклассы от TestCase.

Заранее спасибо!

31
задан alexloh 12 February 2010 в 20:53
поделиться

2 ответа

Хотя это и не решает вашу непосредственную проблему, я нахожу очень полезной общую практику создания наборов и наборов наборов, например, для пакета что-то вроде PackageFooSuite и т.д. и собирать эти наборы в один или несколько наборов снова, например, ModuleFooSuite и иметь один набор верхнего уровня, например, AllTestsSuite. Таким образом, легко запускать как все тесты за один шаг, так и подмодульные тесты для пакета, над которым я сейчас работаю (и тесты выполняются быстрее, чем если бы я всегда запускал их все):

@RunWith(Suite.class)
@Suite.SuiteClasses({ PackageFooSuite.class, PackageBarSuite.class} )
public final class AllTestsSuite {} // or ModuleFooSuite, and that in AllTests
23
ответ дан 27 November 2019 в 22:27
поделиться

Вы можете довольно легко сделать это из maven, используя плагин surefire : я обычно очищаю / компилирую / устанавливаю свои проекты с помощью команды перед их сравнением для использования eclipse ( mvn eclipse: clean eclipse: eclipse ), и вы можете определить набор тестов в вашем pom, в котором перечислены все тесты, которые вы хотите запускать в массовом порядке каждый раз при запуске mvn install . Вы не вызываете их программно, но вы определенно можете вызывать их массово.

3
ответ дан 27 November 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: