Testng-custom-logger

提供:Dev Guides
移動先:案内検索

TestNG-カスタムロギング

以前に、TestNGがロギングとレポート用に提供するさまざまなオプションについて読んでいました。 それでは、それらの使用を開始する方法を学びましょう。 はじめに、ロギングのためにITestListenerインターフェイスを使用するサンプルプログラムを作成します。

テストケースクラスを作成する

*C:\> TestNG_WORKSPACE* に *SampleTest.java* などのJavaクラスを作成します。
import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
   @Test
   public void testMethodOne() {
      Assert.assertTrue(true);
   }

   @Test
   public void testMethodTwo() {
      Assert.assertTrue(false);
   }

   @Test(dependsOnMethods={"testMethodTwo"})
   public void testMethodThree() {
      Assert.assertTrue(true);
   }
}

上記のテストクラスには、実行時に_testMethodOne_と_testMethodThree_が合格する3つのテストメソッドが含まれていますが、_testMethodTwo_は、テストの真理条件に使用されるAssert.assertTrueメソッドに_false_ブール値を渡すことで失敗します。

カスタムロギングクラスを作成する

*C:\> TestNG_WORKSPACE* に *CustomListener.java* という名前の新しいクラスを作成します。
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;

public class CustomListener extends TestListenerAdapter{
   private int m_count = 0;

   @Override
   public void onTestFailure(ITestResult tr) {
      log(tr.getName()+ "--Test method failed\n");
   }

   @Override
   public void onTestSkipped(ITestResult tr) {
      log(tr.getName()+ "--Test method skipped\n");
   }

   @Override
   public void onTestSuccess(ITestResult tr) {
      log(tr.getName()+ "--Test method success\n");
   }

   private void log(String string) {
      System.out.print(string);
      if (++m_count % 40 == 0) {
         System.out.println("");
      }
   }

}

上記のクラスは、_TestestAdapter_を拡張し、空のメソッドで_ITestListener_を実装します。 したがって、インターフェイスから他のメソッドをオーバーライドする必要はありません。 必要に応じて、インターフェイスを直接実装できます。

testng.xmlを作成する

*C:\> TestNG_WORKSPACE* にtestng.xmlを作成して、テストケースを実行します。
<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Logger Suite">
   <listeners>
      <listener class-name = "CustomListener"/>
   </listeners>

   <test name = "Simple Logger test">
      <classes>
         <class name = "SampleTest"/>
      </classes>
   </test>
</suite>

javacを使用して、SampleTest、CustomListenerクラスをコンパイルします。

C:\TestNG_WORKSPACE>javac CustomListener.java SampleTest.java

次に、testng.xmlを実行します。

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

出力を確認します。

testMethodOne--Test method success
testMethodTwo--Test method failed
testMethodThree--Test method skipped

===============================================
Simple Logger Suite
Total tests run: 3, Failures: 1, Skips: 1
===============================================

ITestListenerインターフェイスを実装するカスタムロガークラスを作成し、TestNGテストスイートにリスナーとしてアタッチしました。 このリスナークラスのメソッドは、テストの開始時、テストの失敗時、テストの成功時などにTestNGによって呼び出されます。 複数のリスナーを実装して、テストスイートの実行に追加できます。TestNGは、テストスイートにアタッチされているすべてのリスナーを呼び出します。

ロギングリスナーは、主に、テストの実行中にテスト実行の継続的なステータスを確認する必要がある場合に使用されます。