上一篇讲了选择testng作为我们的单元测试基础框架,那么testng在项目中是怎么启动的呢,这里分为ide工具(idea)怎么启动和自动化运行怎么启动。
在讲清楚如何启动时,我们先写两个单元测试,新建一个maven工程的java项目,方式很简单,这里就不演示了,可以看下这个示例。
在maven的pom.xml中引入testng的包,一般情况下我们会选择使用量最多的包。
<!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> <scope>test</scope> </dependency>
新建两个test类。
public class DemoTest { @Test public void testFail(){ Assert.assertFalse(true); } @Test public void testSuccess(){ Assert.assertTrue(true); } }
public class DemoV1Test { @Test public void testFail(){ Assert.assertFalse(true); } @Test public void testSuccess(){ Assert.assertTrue(true); } }
打开一个test文件,鼠标放在test类上,可以看到运行按钮。
启动执行即可。
我一般喜欢看到端到端的东西,到这里这里有两个疑问。
针对这个问题,没有找出官方答案,但是肯定是和idea识别main方法一样,idea看到一个类是public声明的,并且有@Test注解声明的方法,就会把这个类作为Test可以执行类,所以按照约定,一个方法可以通过Test执行的条件要满足如下:
既然@Test的类没有main方法,idea 肯定是通过插件的形式执行,我们到idea的插件库里搜索一下,果真能搜索到。
那么是不是我们diable这个插件之后,testng就不能运行了呢,我们试一下之后发现确实Test类上已经没有运行按钮了。
enable这个插件之后,就恢复正常了。
所以我们的结论是testng在idea上运行是通过插件来启动执行的。
我们到项目目录下执行:
mvn install
控制台就输出以下结论。
和我们写的代码是一致的。
那我们执行mvn命令时不想执行单元测试怎么办呢,可以加上参数-DskipTests。
mvn install -DskipTests
执行结果就不再执行单元测试。