TestNG在Eclipse中運行的幾種方法



使用了TestNG注解的測試類有各種運行方法,下面就一一列舉一下。為了讓各位朋友有相同的執行體驗,我說一下我使用的工具版本

程序 版本
java 1.8.0_211
Eclipse 2019-06 (4.12.0)
TestNG插件 6.14.3

1 在Eclipse Outline視圖中,點右鍵run as TestNG Test (不推薦)

需要測試的類:Person

package ngtest;

import org.testng.annotations.Test;

public class Person {
 String name;
 String age;
 static String MOTHER_LAND;

 public Person() {
 }

 public Person(String name, String age) {
  super();
  this.name = name;
  this.age = age;
 }

 @Test
 public void sayHello() {
  System.out.println("Hello,I'm " + name + ", " + age + " years old!");
 }

 @Test
 public void introduce() {
  System.out.println("Hello world!");
 }
	
 @Test
 public static void myMotherLand() {
  System.out.println(MOTHER_LAND);
 }
}

要測試上面的Introduce()方法,可以打開eclpise的outline試圖,window->showView->outline,然后在outline視圖中被測試的函數名上點擊右鍵,選擇run as ->TestNG Test。這種方式適用於不需要接收外部參數的方法,或靜態方法。如果該方法不是靜態方法,必須確保該方法不使用外部參數,並且類中有無參構造方法,否則會因為沒有給參數賦值、或者構造對象時調用有參構造方法而我們沒有傳入參數報錯。
由於運行條件限制太死,所以我們不推薦這種方式。

2 在Eclipse類編輯界面,直接點擊右鍵run as TestNG Test

  1. 在方法名上點擊右鍵run as ->TestNG Test ,這時就會運行該方法,如果該方法引用了外部參數,會默認付空值,比如上面的sayHello()方法,會輸出Hello,I'm null, null years old!
  2. 在文件空白處點擊右鍵run as ->TestNG Test,這時會運行該類下所有帶@Test標記的方法
    注意、這種運行方式要求類中必須有無參構造方法,否則會報錯

3 通過TestNG配置文件來運行(推薦)

  1. 生成配置文件,在Eclipse 的類導航或包導航試圖(左側那個目錄樹)中右鍵點擊類名,選擇TestNG->Convert to TestNG,點擊Finish,即可生成配置文件。
  2. 運行配置文件:在Eclipse中運行配置文件有兩種方法:
    • 在配置文件中,點擊右鍵,選擇run as->TestNG Test
    • 在左側文件導航欄中,選中testng配置文件,點擊右鍵,選擇run as->TestNG Test

推薦使用這種方式,這種方式可以傳參、自定義監聽器、根據組篩選運行的類,是最標准的運行方式

4 通過TestNG類來執行

TestNG也是Java寫的,所以毫無疑問我們可以通過main函數來調用TestNG類來執行。
在main函數中調用被TestNG注解的類

import org.testng.ITestNGListener;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import ngtest.Person;

public class TestPerson {
 public static void main(String[] args) {
  ITestNGListener tla = new TestListenerAdapter();
  TestNG testng = new TestNG();
  //設置要執行的testNG類
  testng.setTestClasses(new Class[] { Person.class });
  testng.addListener(tla);
  testng.run();
 }
}

在類中調用testng配置文件

package ngtest;
import java.util.List;
import org.testng.TestNG;
import com.google.common.collect.Lists;

public class TestPerson {
 public static void main(String[] args) {
  TestNG tng = new TestNG();
  List<String> suites = Lists.newArrayList();
  //添加要執行的testng.xml文件
  suites.add("testng.xml");
  tng.setTestSuites(suites);
  tng.run();
 }
}

這種執行方法的好處就是可以把代碼打成可執行jar包,TestNG配置文件名設置成參數傳入main函數,配置文件本身作為附件,這樣jar包和配置文件就可以脫離eclipse開發環境獨立運行了。
注意,因為實際要測試的類是在testng.xml文件中指定的,所以在打包的時候一定要注意把該類和他依賴的類都打到包里,否則會無法運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM