首页 > 编程语言 > MAC下基于maven使用IDEA走读TestNG源码解析
2021
08-22

MAC下基于maven使用IDEA走读TestNG源码解析

之前用Python执行程序都是python xxx.py,最近在使用Java技术栈的TestNG,于是想能够也用命令行实现…

创建一个Maven项目

确保已安装了Maven,可使用Maven命令后,使用以下命令可快速创建Maven项目

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

进入项目后,大概是下面的目录结构:

.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── mycompany
    │               └── app
    │                   └── App.java
    └── test
        └── java
            └── com
                └── mycompany
                    └── app
                        └── AppTest.java

此时,AppTest.java应该还是使用Junit的,需要改成使用TestNG:

在pom.xml里安装TestNG

<dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.1.0</version>
    </dependency>

修改AppTest.java里相关注解是来自TestNG的repository

import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertTrue;

配置testng.xml文件

在项目根目录,新建testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Sample test Suite">
    <test name="Sample test">
        <classes>
            <class name="com.mycompany.app.AppTest" />
        </classes>
    </test>
</suite>

配置完testng.xml后,在idea里鼠标右键这个文件也可以Run,Run的时候Console里第一行会打印命令,其中我们需要知道的是 -classpath的内容,后续要用到

命令行运行TestNG

  • 使用mvn test可以运行
  • 使用java命令运行

要先build下项目(即转化为.class文件,我是在idea里使用界面build了,build后可以看到target文件夹生成),接下来使用命令执行:

java -classpath 第三步拿到的classpath内容 org.testng.TestNG testng.xml

classpath 表示程序会在这些path下寻找第三方库

执行结果:

===============================================
Sample test Suite
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================

调试TestNG源码

借助IDEA强大的调试界面,走读TestNG源码。由于IDEA自带的TestNG插件,所以Debug时,走不到TestNG的main方法里,所以需要新建debug Config

如果提示测试的class no found,需要把target->test-classes路径添加到 project structure->module->Dependenices

在这里插入图片描述

以上就是基于maven使用IDEA走读TestNG源码(Mac)的详细内容,更多关于maven TestNG源码的资料请关注自学编程网其它相关文章!

编程技巧