Тестовый набор Maven Surefire Junit
Я использую плагин Maven Surefire для запуска только определенного набора тестов. Например:
package suite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import suite.slow.EvenSlowerClassTest;
import suite.slow.SlowClassTest;
@RunWith(Suite.class)
@Suite.SuiteClasses({
SlowClassTest.class,
EvenSlowerClassTest.class
})
public class SlowSuite {
}
С помощью команды Maven
test -DrunSuite=**/FastSuite.class -DfailIfNoTests=false
Я могу запустить тестовые наборы FastSuite или SlowSuite явно, однако, как я могу запустить все имеющиеся у меня наборы тестов или все тесты, которые не включены в набор тестов?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
2 ответа
То, что я сделал в некоторых из наших проектов, это использовать <profiles>
в pom.xml
активировать специальные наборы тестов. Если никакие профили не активны, все тесты будут выполняться с mvn test
(надеюсь, это то, что вы ищете)
Вот так:
<profile>
<id>commit-test</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version>
<configuration>
<groups>com.test.CommitTest</groups>
</configuration>
</plugin>
</plugins>
</build>
Тестовые классы в аннотированном виде так:
@Category(CommitTest.class)
public class SomeTestClass {
}
Я не знаю, работает ли это с @Suite
а также @RunWith
но если ваши тестовые наборы не слишком много классов, это не должно быть сложной задачей, чтобы изменить это.
команда: mvn clean test -Pcommit-test
Я думаю, что вы можете попробовать с -DrunSuite=**/*Suite.class