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

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

是否有類似 ITestResult(使用 testng) 的等效類僅適用于 JUnit?

是否有類似 ITestResult(使用 testng) 的等效類僅適用于 JUnit?

楊魅力 2023-08-04 15:28:11
我目前正在使用 ExtentReport 和 TestNG 來獲取測試結果。我現在只能使用 JUnit,所以我想知道如何在不使用 TestNG 的情況下將當前代碼轉換為具有相同的功能我見過其他人使用 TestWatcher 或 RunListener 的示例,但我不太確定如何根據我的需要實現它。尤其是對我正在使用的所有東西都是新手@BeforeTest public void setup() {     htmlReporter = new ExtentHtmlReporter(new File(fileLocation));     htmlReporter.loadXMLConfig(new File(FileReaderManager.getInstance().getConfigReader().getReportConfigPath()));     reports = new ExtentReports();     reports.attachReporter(htmlReporter);}@AfterTestpublic void cleanup() {    reports.flush();}@BeforeMethodpublic void register(Method method) {    String testName = method.getName();    testInfo = reports.createTest(testName);}@AfterMethodpublic void captureStatus(ITestResult result) {    if (result.getStatus() == ITestResult.SUCCESS) {        testInfo.log(Status.PASS, "Test: " + result.getName() + " passed");    } else if (result.getStatus() == ITestResult.FAILURE) {        testInfo.log(Status.PASS, "Test: " + result.getName() + " failed");        testInfo.log(Status.FAIL, "Test FAILURE: " + result.getThrowable());    } else if (result.getStatus() == ITestResult.SKIP) {        testInfo.log(Status.PASS, "Test: " + result.getName() + " skipped");    }}`我想在不使用 ITestResult 和 testNG 注釋的其余部分的情況下從這些函數中重新生成相同的結果
查看完整描述

1 回答

?
翻過高山走不出你

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

您需要做的是創建一個處理測試結果的規則。該規則將被創建為 TestWatcher,然后您將覆蓋其失敗和成功的方法。例子:


@Rule

public TestWatcher watchman = new TestWatcher() {

    @Override

    protected void failed(Throwable e, Description description) {

        // Handle logging of failing tests

        System.out.println("Fail!");

    }


    @Override

    protected void succeeded(Description description) {

        // Handle logging of succeeding tests

       System.out.println("Success!");

    }

};

描述參數包含有關失敗類的信息http://junit.sourceforge.net/javadoc/org/junit/runner/Description.html


至于方法注釋,以下注釋是 TestNG - JUnit 4 的等效項:


@BeforeTest - @BeforeClass


@AfterTest - @AfterClass


@BeforeMethod - @Before


@AfterMethod - @After


以下代碼演示了如何構建測試類:

public class MyTestClass {

    @Rule

    public TestWatcher watchman = new TestWatcher() {

        @Override

        protected void failed(Throwable e, Description description) {

            // Handle logging of failing tests

            System.out.println("Fail!");

        }


        @Override

        protected void succeeded(Description description) {

            // Handle logging of succeeding tests

            System.out.println("Success!");

        }

    };


    @BeforeClass

    public static void setup() {

        //Some setup before all test methods

    }


    @AfterClass

    public static void cleanup() {

        // Some cleanup after all test methods

    }


    @Before

    public void register() {

        // Some setup before each test method

    }


    @Test

    public void succeedingTest() {

        Assert.assertTrue(true);

    }


    @Test

    public void failingTest() {

        Assert.assertTrue(false);

    }

}


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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