6

@Before メソッドで現在実行中の TestCase メソッドの名前を取得したい。例

public class SampleTest()
{
    @Before
    public void setUp()
    {
        //get name of method here
    }

    @Test
    public void exampleTest()
    {
        //Some code here.
    }
 }
4

2 に答える 2

21

ここで説明したように、@Rule と TestName の組み合わせを使用してみてください。

ドキュメントによると、メソッドの前にテスト名が必要です。

ルールを含むフィールドに注釈を付けます。このようなフィールドは、静的ではなくパブリックであり、TestRule のサブタイプである必要があります。TestRule に渡された Statement は、すべての Before メソッドを実行し、次に Test メソッドを実行し、最後にすべての After メソッドを実行し、これらのいずれかが失敗した場合は例外をスローします。

Junit 4.9を使用したテストケースは次のとおりです

public class JUnitTest {

    @Rule public TestName testName = new TestName();

    @Before
    public void before() {
        System.out.println(testName.getMethodName());
    }

    @Test
    public void test() {
        System.out.println("test ...");
    }
}
于 2013-06-21T08:20:09.880 に答える
3

クラスで@Rule注釈を使用してみてくださいorg.junit.rules.TestName

@Rule public TestName name = new TestName();

@Test 
public void test() {
    assertEquals("test", name.getMethodName());
}
于 2013-06-21T08:21:47.600 に答える