1

我有 15 个带有测试的 JUnit5 类。当我从 maven 运行它们时,afterAll()执行了 15 次,这会导致 15 条通知发送到 Slack Webhook。还有什么我只需要发送一个通知的吗?

public class TestResultsExtensionForJUnit5 implements TestWatcher, AfterAllCallback {

    @Override
    public void afterAll(ExtensionContext extensionContext) throws Exception {
          sendResultToWebHook();
    }

    @Override
    public void testDisabled(ExtensionContext context, Optional<String> reason) {
        totalTestDisabled = totalTestDisabled + 1;
    }

    @Override
    public void testSuccessful(ExtensionContext context) {
        totalTestPassed = totalTestPassed + 1;
    }

    @Override
    public void testAborted(ExtensionContext context, Throwable cause) {
        totalTestAborted = totalTestAborted + 1;
    }

    @Override
    public void testFailed(ExtensionContext context, Throwable cause) {
        totalTestFailed = totalTestFailed + 1;
    }
}
@ExtendWith(TestResultsExtensionForJUnit5.class)
public class Random1Test {}
4

1 回答 1

3

最好的方法是从 JUnit 平台实现和安装 a TestExecutionListener,如https://junit.org/junit5/docs/current/user-guide/#launcher-api-listeners-custom的用户指南中所述- -testPlanExecutionFinished​(TestPlan testPlan)用您的通知电话覆盖默认方法。至此,所有引擎的所有测试都已完成。

于 2019-12-20T20:15:50.303 回答