如何启动Java的单元测试

上一篇讲了选择testng作为我们的单元测试基础框架,那么testng在项目中是怎么启动的呢,这里分为ide工具(idea)怎么启动和自动化运行怎么启动。

在讲清楚如何启动时,我们先写两个单元测试,新建一个maven工程的java项目,方式很简单,这里就不演示了,可以看下这个示例

引入testng

在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);
    }
}

idea 如何启动testng的单元测试

打开一个test文件,鼠标放在test类上,可以看到运行按钮。
如何启动Java的单元测试
启动执行即可。

我一般喜欢看到端到端的东西,到这里这里有两个疑问。

  1. idea是如何识别这个类或者这个方法是单元测试方法的呢?
  2. 我们的这个test类并没有main方法,点击运行的时候,idea是如何启动这个类的?

idea是如何识别单元测试

针对这个问题,没有找出官方答案,但是肯定是和idea识别main方法一样,idea看到一个类是public声明的,并且有@Test注解声明的方法,就会把这个类作为Test可以执行类,所以按照约定,一个方法可以通过Test执行的条件要满足如下:

  1. class是public声明。
  2. method也必须是public声明,可以带static, final等关键字,也可以不带。

idea是如何启动单元测试

既然@Test的类没有main方法,idea 肯定是通过插件的形式执行,我们到idea的插件库里搜索一下,果真能搜索到。
如何启动Java的单元测试
那么是不是我们diable这个插件之后,testng就不能运行了呢,我们试一下之后发现确实Test类上已经没有运行按钮了。

如何启动Java的单元测试
enable这个插件之后,就恢复正常了。

所以我们的结论是testng在idea上运行是通过插件来启动执行的。

maven是如何执行单元测试的

我们到项目目录下执行:

mvn install

控制台就输出以下结论。

如何启动Java的单元测试

和我们写的代码是一致的。

那我们执行mvn命令时不想执行单元测试怎么办呢,可以加上参数-DskipTests。

mvn install -DskipTests

执行结果就不再执行单元测试。
如何启动Java的单元测试

上一篇:TestNG排名第一的测试框架


下一篇:Assert为TestNG中的断言类