一、idea中testng使用的条件
1、需要引入testng的依赖包;
2、需要在idea中添加testng插件包。
只有满足以上两个条件,才能在代码中出现运行testng的标识。如下图:
在只满足条件1的情况下,即只有testng依赖包(插件中没有testng)的情况下,也是可以运行测试的,不过不是在代码中点击按钮运行测试,而是在terminal中运行命令mvn test来进行测试。如下图:(此时代码中没有运行测试的按钮标识)
二、执行testng测试
有时候执行mvn test命令发现test路径下的代码没有全部执行,原因是mvn test 使用的是surefire插件,它按照指定格式的类名来查找匹配的测试类,surefire默认的查找测试类的模式如下:
Test*.java
*Test.java
*TestCase.java
默认排除的测试类:
AbstractTest.java
AbstractTestCase.java
要添加其他命名格式的测试类,可以进行如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<includes>
<include>XXXTests.java</include>
</includes>
</configuration>
</plugin>
需要注意的是:mvn test命令只会执行src/test路径下的测试代码。
运行指定的用例
指定测试类
mvn -Dtest=TestClassName test
mvn -Dtest=TestCile test
mvn -Dtest=TestSquare,TestCile test
指定单个测试类中的多个方法(Junit4+, TestNG)
mvn -Dtest=TestCircle#mytest test
mvn -Dtest=TestCircle#test* test
mvn -Dtest=TestCircle#testOne+testTwo test #(Surefire2.12.1+, Junit4.x+)
通过maven执行testng的xml文件
新建testng的xml文件,名称可以不加testng,然后通过mvn test命令运行:
1、新建testng的项目文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="测试套件" verbose="1" >
<test name="简单测试">
<classes>
<class name="com.jxy.TestHello"/>
<class name="com.jxy.TestParamter"/>
</classes>
</test>
</suite>
2、在pom插件surefire插件中进行配置:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testhello.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>