Автор оригинала: 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/”