TestNG - 忽略測試



有時,我們的程式碼尚未準備好,並且為測試該方法/程式碼而編寫的測試用例會失敗。在這種情況下,註解 @Test(enabled = false) 有助於停用該測試用例。

如果某個測試方法已用 @Test(enabled = false) 進行註解,則會跳過尚未準備好進行測試的測試用例。

現在,讓我們在實戰中檢視 @Test(enabled = false)。

建立類

建立一個要進行測試的 Java 類,例如在 /work/testng/src 中的 MessageUtil.java

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }

   // prints the message
   public String printMessage() {
      System.out.println(message);
      return message;
   }

   // add "Hi!" to the message
   public String salutationMessage() {
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }
}

建立測試用例類

  • 建立一個 Java 測試類,例如在 /work/testng/src 中的 IgnoreTest.java

  • 向測試類新增測試方法 testPrintMessage() 和 testSalutationMessage()。

  • 向方法 testPrintMessage() 添加註解 @Test(enabled = false)。

以下為 IgnoreTest.java 的內容。

import org.testng.Assert;
import org.testng.annotations.Test;

public class IgnoreTest {
   String message = "Manisha";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test(enabled = false)
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Manisha";
      Assert.assertEquals(message, messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message, messageUtil.salutationMessage());
   }
}

建立 testng.xml

/work/testng/src 中建立 testng.xml 以執行測試用例。

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">
   <test name = "test1">
      <classes>
         <class name = "IgnoreTest" />
      </classes>
   </test>
</suite>

使用 javac 編譯 MessageUtil 和測試用例類。

/work/testng/src$ javac MessageUtil.java IgnoreTest.java

現在,執行 testng.xml,它不會執行 testPrintMessage() 該測試用例已在提供的測試用例類中進行定義。

/work/testng/src$ java org.testng.TestNG testng.xml

驗證輸出。未測試 testPrintMessage() 測試用例。

Inside testSalutationMessage()
Hi!Manisha

===============================================
Suite1
Total tests run: 1, Failures: 0, Skips: 0
===============================================

你還可以忽略一組測試,這將在下一章中討論。

廣告