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源碼的資料請關註WalkonNet其它相關文章!

推薦閱讀: