Автор оригинала: mkyong.
В этой статье показано, как использовать пометку JUnit 5 и фильтрацию с помощью аннотации @Tag
.
Протестировано с
- Юнит 5.5.2
- Мавен 3.6.0
- Ступень 5.6.2
1. @Тег
Простая пометка для демонстрации.
package com.mkyong.tags; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("branch-20") public class TagMethodTest { @Test @Tag("feature-168") void test1Plus1() { assertEquals(2, 1 + 1); } @Test @Tag("integration") @Tag("fast") void testFastAndIntegration() { assertEquals(2, 1 + 1); } @Test @Tag("slow") void testSlow() { assertEquals(2, 1 + 1); } }
2. Тесты фильтрации Maven
2.1 В Maven мы можем запускать тесты на основе тегов с помощью параметров конфигурации плагина maven-surefire-plugin
org.apache.maven.plugins maven-surefire-plugin 3.0.0-M3 integration, feature-168 slow
2.2 В консоли используется - D
вариант.
# Run tests which tagged with `integration, slow, feature-168` $ mvn -Dgroups="integration, fast, feature-168" # Exclude tests which tagged with 'slow' $ mvn -DexcludedGroups="slow"
3. Тесты фильтрации по градуировкам
3.1 В Gradle мы можем фильтровать теги следующим образом:
test { useJUnitPlatform{ includeTags 'integration', 'feature-168' excludeTags 'slow' } }
Запускайте тесты с тегами интеграция" и `функция-168
$ gradle clean test > Task :test com.mkyong.tags.TagMethodTest > testFastAndIntegration() PASSED com.mkyong.tags.TagMethodTest > test1Plus1() PASSED
3.2 Понятия не имею, как передать включить теги
параметры в консоль, вместо этого создает новую тестовую задачу.
task slowTest(type: Test) { useJUnitPlatform { includeTags 'slow' } }
Запускайте тесты, помеченные как “медленные”
$ gradle clean slowtest > Task :slowTest com.mkyong.tags.TagMethodTest > testSlow() PASSED
Скачать Исходный Код
Рекомендации
- Поддержка специфичных для тегов задач junit5
- Фильтрация тестов на градуировку
- Плагин Maven Безошибочный
- Запущенный тест JUnit 5
Оригинал: “https://mkyong.com/junit5/junit-5-tagging-and-filtering-tag-examples/”