亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取JUnit 4中當前正在執行的測試的名稱

獲取JUnit 4中當前正在執行的測試的名稱

慕絲7291255 2019-10-06 10:55:04
在JUnit 3中,我可以這樣獲得當前正在運行的測試的名稱:public class MyTest extends TestCase{    public void testSomething()    {        System.out.println("Current test is " + getName());        ...    }}它將顯示“當前測試為testSomething”。在JUnit 4中是否有任何現成的或簡單的方法可以做到這一點?背景:顯然,我不想只打印測試的名稱。我想加載存儲在與測試名稱相同的資源中的特定于測試的數據。您知道,約定優于配置及所有其他。
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

JUnit 4.7似乎使用TestName-Rule添加了此功能??雌饋磉@將為您獲取方法名稱:


import org.junit.Rule;


public class NameRuleTest {

    @Rule public TestName name = new TestName();


    @Test public void testA() {

        assertEquals("testA", name.getMethodName());

    }


    @Test public void testB() {

        assertEquals("testB", name.getMethodName());

    }

}


查看完整回答
反對 回復 2019-10-06
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

JUnit 4.9.x及更高版本

從JUnit 4.9開始,TestWatchman不推薦使用TestWatcher該類,而推薦使用該類:


@Rule

public TestRule watcher = new TestWatcher() {

   protected void starting(Description description) {

      System.out.println("Starting test: " + description.getMethodName());

   }

};

注意:必須聲明包含類public。


JUnit 4.7.x-4.8.x

以下方法將打印類中所有測試的方法名稱:


@Rule

public MethodRule watchman = new TestWatchman() {

   public void starting(FrameworkMethod method) {

      System.out.println("Starting test: " + method.getName());

   }

};


查看完整回答
反對 回復 2019-10-06
?
米脂

TA貢獻1836條經驗 獲得超3個贊

JUnit 5及更高版本

在JUnit 5中,您可以注入TestInfo,從而簡化了提供給測試方法的測試元數據。例如:


@Test

@DisplayName("This is my test")

@Tag("It is my tag")

void test1(TestInfo testInfo) {

    assertEquals("This is my test", testInfo.getDisplayName());

    assertTrue(testInfo.getTags().contains("It is my tag"));

}


查看完整回答
反對 回復 2019-10-06
  • 3 回答
  • 0 關注
  • 1251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號