Я хочу быть в состоянии запустить все тесты в проекте программно. Я знаю, что Eclipse имеет "Выполненный как тестовая конфигурация" JUnit, которая так или иначе захватывает все тесты в проекте и выполняет их. Есть ли какой-либо способ для меня также захватить список тестов программно и выполнить их? Или есть ли некоторый хороший способ создать набор тестов, содержащий все тестовые сценарии, вручную не перечисляя всех (все 700 +) их?
Я попробовал опцию "New...-> Test Suite" в Eclipse, но это, кажется, работает только на JUnit 3, определяя тесты их расширением от TestCase
Тестовые классы являются JUnit 4, таким образом, их единственная характеристика различения является аннотацией, никаким соглашением о присвоении имен, никаким разделением на подклассы от TestCase.
Заранее спасибо!
Хотя это и не решает вашу непосредственную проблему, я нахожу очень полезной общую практику создания наборов и наборов наборов, например, для пакета что-то вроде PackageFooSuite
и т.д. и собирать эти наборы в один или несколько наборов снова, например, ModuleFooSuite
и иметь один набор верхнего уровня, например, AllTestsSuite
. Таким образом, легко запускать как все тесты за один шаг, так и подмодульные тесты для пакета, над которым я сейчас работаю (и тесты выполняются быстрее, чем если бы я всегда запускал их все):
@RunWith(Suite.class)
@Suite.SuiteClasses({ PackageFooSuite.class, PackageBarSuite.class} )
public final class AllTestsSuite {} // or ModuleFooSuite, and that in AllTests
Вы можете довольно легко сделать это из maven, используя плагин surefire : я обычно очищаю / компилирую / устанавливаю свои проекты с помощью команды перед их сравнением для использования eclipse ( mvn eclipse: clean eclipse: eclipse
), и вы можете определить набор тестов в вашем pom, в котором перечислены все тесты, которые вы хотите запускать в массовом порядке каждый раз при запуске mvn install
. Вы не вызываете их программно, но вы определенно можете вызывать их массово.