Тестовые наборы считаются устаревшими в JUnit5?
Я пытаюсь создать тестовые наборы с JUnit5. После некоторых исследований я не смог сделать вывод, является ли это поддерживаемой функцией или нет.
В официальном руководстве пользователя упоминаются только комплекты с учетом обратной совместимости с JUnit 4.
Вот как это было сделано в JUnit 4:
@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
}
Означает ли это, что тестовые наборы считаются устаревшими или же та же концепция все еще доступна под другим именем?
2 ответа
Означает ли это, что тестовые наборы в настоящее время считаются устаревшими или эта же концепция все еще доступна под другим именем?
Bitter Suite Ответ:
На самом деле в JUnit 5 есть поддержка наборов тестов, но это почти наверняка не то, что вы ищете. Тем не менее, команда JUnit работает над тем, что, вероятно, подойдет вашим потребностям.
Подробный ответ:
Начиная с JUnit 5.2, единственная встроенная поддержка для пакетов - через JUnitPlatform
Бегун (зарегистрирован через @RunWith(JUnitPlatform.class)
). Этот бегун фактически запускает платформу JUnit (она же инфраструктура JUnit 5) и позволяет вам выполнять тесты с различными моделями программирования, такими как JUnit 4 и JUnit Jupiter. Он также позволяет выбирать различные вещи (например, классы, пакеты и т. Д.) И настраивать фильтры включения и исключения (например, для тегов или механизмов тестирования).
Проблема с бегуном состоит в том, что он не может быть выполнен непосредственно на платформе JUnit. Он может быть выполнен только с использованием JUnit 4. Это означает, что вы теряете все возможности отчетности платформы JUnit, так как информация теряется при переводе с платформы JUnit на JUnit 4.
Таким образом, вы можете технически использовать JUnitPlatform
Бегун выполнил набор, используя JUnit 5, и тесты будут выполнены, но отчетность и отображение в IDE будут неоптимальными.
С другой стороны, команда JUnit планирует предоставить встроенную поддержку для пакетов в JUnit 5, которая не страдает от недостатков JUnitPlatform
Runner для JUnit 4. Для получения подробной информации, смотрите все проблемы, назначенные метке "наборы" на GitHub.
Кроме того, уже есть ветвь функций, которую вы можете проверить, которую можно использовать в сборке Maven или Gradle через JitPack.
С Уважением,
Сэм (5 основных коммиттеров)
Тестовые наборы теперь можно запускать с помощью движка JUnit 5 (начиная с версии 5.8.0 ).
// Aggregator dependency for junit-platform-suite-api and junit-platform-suite-engine
implementation("org.junit.platform:junit-platform-suite:1.8.0-RC1")
import org.junit.platform.suite.api.*
@Suite
@SelectClasses(MyTestClass1::class, MyTestClass2::class)
@SelectPackages("...")
@SelectDirectories("...")
class MyTestSuite
Прекращение поддержки JUnitPlatform runner:
Введение поддержки @Suite, предоставляемой модулем junit-platform-suite-engine, делает средство запуска JUnitPlatform устаревшим. См. Подробности в JUnit Platform Suite Engine.