原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong
1. 在Maven中配置测试插件surefire
org.apache.maven.plugins
maven-surefire-plugin
2.17
2. 默认被执行的测试
默认情况下,surefire会执行文件名以Test开头或结尾的测试用例,或者是以TestCase结尾的测试用例。
"**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test".
"**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase".
org.apache.maven.plugins
maven-surefire-plugin
2.17
true
补充:如果使用Junit或者TestNG也可以直接在当前测试方法上加注解@Ignore忽略,这是加了该注解的也都会被skip
org.apache.maven.plugins
maven-surefire-plugin
2.17
**/TestCircle.java
**/TestSquare.java
5. 仅执行一个/一类测试(repeat) Running a Single Test (Junit & TestNG 通用)
mvn -Dtest=TestCircle test test表示当前测试方法所在的测试类,不需要扩展名 The value for the test
parameter is the name of the test class
mvn -Dtest=TestCi*le test *表示任何
mvn -Dtest=TestSquare,TestCi*le test 如果测试类没有使用规范的命名,可以显示的直接指定测试方法的名称
Running a set of methods in a Single Test Class
With version 2.7.3, you can run only n tests in a single Test Class.
NOTE : it's supported for junit 4.x and TestNG.
You must use the following syntax
mvn -Dtest=TestCircle#mytest test
You can use patterns too
mvn -Dtest=TestCircle#test* test
As of surefire 2.12.1, you can select multiple methods (JUnit4X only at this time, patches welcome)
mvn -Dtest=TestCircle#testOne+testTwo test
org.testng
testng
6.3.1
test
If using an older version of TestNG (<= 5.11)
org.testng
testng
5.11
test
jdk15
默认会执行的测试用例:*Test.java7. 如何使用TestNG的 suite
org.apache.maven.plugins
maven-surefire-plugin
2.17
testng.xml
注意:
This configuration will override the includes and excludes patterns and run all tests in the suite files.
原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong
8. 执行群组测试 execute one or more specific groups (Junit & TestNG 通用)
org.apache.maven.plugins
maven-surefire-plugin
2.17
functest,perftest
org.apache.maven.plugins
maven-surefire-plugin
2.17
methods
10
junit
junit
4.8.1
test
11. 如何使用Junit Category Using JUnit Categories
maven-surefire-plugin
2.11
com.mycompany.SlowTests
仅有带该注解的测试 或者 是当前注解 类/接口的 子类 会被执行,
This will execute only those tests annotated with the@Category(com.mycompany.SlowTests.class)
annotation and those tests annotated with@Category(com.mycompany.SlowerTests.class)
if class/interfaceSlowerTests
is subclass ofSlowTests
:
public interface SlowTests{}
public interface SlowerTests extends SlowTests{}
------------------------------------------------------------------------------------------------
public class AppTest {
@Test
@Category(com.mycompany.SlowTests.class)
public void testSlow() {
System.out.println("slow");
}
@Test
@Category(com.mycompany.SlowerTests.class)
public void testSlower() {
System.out.println("slower");
}
@Test
@Category(com.cmycompany.FastTests.class)
public void testSlow() {
System.out.println("fast");
}
}
参考:
Junit的@Category详解
12. 如何debug TestCases
mvnDebug -DforkCount=0 test dubug非fork的测试
在debug的需求时,还是使用Eclipse最方便
org.apache.maven.plugins
maven-surefire-plugin
2.17
propertyValue
${project.build.directory}
[...]
14. 选择surefire provider
surefire 默认会根据工程的classpath中已有的Junit|TestNG的版本来选择 test-framework provider,我们也可以手动的选择和覆盖当前的provider
org.apache.maven.plugins
maven-surefire-plugin
2.17
org.apache.maven.surefire
surefire-junit47
2.17
目前已经提供的provider有surefire-junit3, surefire-junit4, surefire-junit47 and surefire-testng
参考:http://mvnrepository.com/artifact/org.apache.maven.surefire
注意:选择手动指定provider时,不要忘记安装test framework
15. class Loading issues
please refer to:
http://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html
原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong
1、别低估任何人。