Как мне создать тестовые наборы с JUnit 4?
Кажется, вся документация, которую я видел, мне не подходит. И если я использую мастер Eclipse, он не дает мне возможности выбрать какой-либо из созданных мной тестовых классов.




Я думаю, что TestSuite потерял популярность. Возможно, это было в стиле до 4.x, но, насколько мне известно, это не сейчас.
Я просто аннотирую нужные тесты и запускаю класс. Все аннотированные тесты выполняются. Я мог бы использовать Ant, но в большинстве случаев IntelliJ запускает их за меня.
Я могу ошибаться, но я думаю, что TestSuite по-прежнему хорош, когда нам нужно указать порядок тестов, особенно в автоматических интеграционных тестах, где тестирование небольших сценариев должно предшествовать более сложным сценариям.
@duffymo Я нахожу ваш комментарий интересным, так как до сих пор меня учили мыслить до 4.x относительно организации тестовых случаев в тестовых наборах
Если у вас большое количество тестов, разные функциональные области / модули, различие между «основными» и вспомогательными / более медленными / дорогими неосновными тестами - по любой из этих причин - вы должны структурировать тесты в TestSuite.
Вы можете использовать аннотацию @SuiteClass в нескольких классах, и вы можете вкладывать наборы в наборы. Идея их организации в 3.x по-прежнему полностью актуальна (и ее следует использовать). Вы можете структурировать все точно так же, как и раньше; вы просто используете синтаксис аннотации вместо TestSuite.suite(). На самом деле нет никаких преимуществ в использовании TestSuite по сравнению с аннотациями, и вы можете воспользоваться всеми улучшениями JUnit 4, если используете организационно эквивалентную аннотацию.
В верхней части моей головы создайте TestSuite и вызовите addTests. Если вы хотите, чтобы какой-то источник посмотрел, попробуйте любую библиотеку с открытым исходным кодом, такую как hibernate или что-то из apache, и загляните в тестовый каталог источника для набора тестов ...
import org.junit.runners.Suite;
import org.junit.runner.RunWith;
@RunWith(Suite.class)
@Suite.SuiteClasses({TestClass1.class, TestClass2.class})
public class TestSuite {
//nothing
}
Вы можете создать такой набор. Например, пакет AllTest будет выглядеть примерно так.
package my.package.tests;
@RunWith(Suite.class)
@SuiteClasses({
testMyService.class,
testMyBackend.class,
...
})
public class AllTests {}
Теперь вы можете запустить это несколькими способами:
запустить из командной строки:
$ java -cp build/classes/:/usr/share/java/junit4.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore my.package.tests.AllTests
Добавил бы еще больше голосов за CMDLine :)
Вот шаги для создания набора JUnit в eclipse:
Информация о версии: это для eclipse Neon и JUnit 4. Вы также можете выбрать JUnit 3 перед тем, как выбрать «Готово» на шаге 6.
Не могли бы вы опубликовать файл build.xml, показывающий, как запустить этот набор тестов из ANT?
В Eclipse 3.7 Indigo мастер набора тестов теперь поддерживает JUnit 4.