4

テストを並行して実行しています。デフォルトでは、TestNG はスレッドの名前TestNG

TestNG javadocsは役に立ちません。

スレッド名またはスレッド ID を設定する方法はありますか?

4

2 に答える 2

3

テストでスレッド名を設定しました。たとえば、IN THIS PROJECTでそれをどのように行ったかを参照してください。基本的に、すべての Log4j メッセージ (および testNG レポーター メッセージ) には、スレッド ID が表示されます。

標準出力にスレッド ID を表示しやすくする基本的な例を次に示します。Reporterクラスを使用して、スレッド ID を HTML 標準出力に入れることもできます。残念ながら、カスタム レポーターを作成しない限り、HTML レポートのテスト名に threadid を付けることはできません (上記の私のプロジェクトへのリンクで行いました)。

import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class ParallelMethodTest 
{
    @BeforeMethod
    public void beforeMethod() {
        long id = Thread.currentThread().getId();
        System.out.println("Before test-method. Thread id is: " + id);
    }

    @Test
    public void testMethodsOne() {
        long id = Thread.currentThread().getId();
        System.out.println("Simple test-method One. Thread id is: " + id);
    }

    @Test
    public void testMethodsTwo() {
        long id = Thread.currentThread().getId();
        System.out.println("Simple test-method Two. Thread id is: " + id);
    }

    @AfterMethod
    public void afterMethod() {
        long id = Thread.currentThread().getId();
        System.out.println("After test-method. Thread id is: " + id);
    }
}
于 2014-07-08T22:35:34.910 に答える
1

setName() 関数を使用して、スレッドにカスタム名を付けることができます。

以下は、Java でスレッド名を設定する例です。

Thread.currentThread().setName("Thread 1");

上記の行は、現在のスレッド名を「スレッド 1」に設定します。

于 2016-09-26T06:29:22.083 に答える