Testng-custom-logger
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は、テストスイートにアタッチされているすべてのリスナーを呼び出します。
ロギングリスナーは、主に、テストの実行中にテスト実行の継続的なステータスを確認する必要がある場合に使用されます。