JUnit5 - 自定义生命周期事件/扩展点

问题描述 投票:0回答:1

我正在 Junit5 中编写验收测试套件。因此,我想生成特定于我的域的自定义输出(html)。此输出将包含从生命周期事件获取的数据,例如测试开始(或在所有测试之前),还有一些数据来自非生命周期事件 - 例如:在我想要发出的测试执行过程中还收集一些用于报告的数据。

有人可以告诉我该怎么做吗?我知道自定义监听器扩展对于生命周期事件都有好处,但是在测试执行过程中添加一些非生命周期数据并不容易?

junit5 junit5-extension-model
1个回答
0
投票

正如@johanneslink已经指出的那样,您可以使用

TestReporter
“为当前容器发布报告条目或测试报告基础设施”,也在测试执行过程中:

class TestReporterDemo {

    @Test
    void reportSingleValue(TestReporter testReporter) {
        testReporter.publishEntry("a status message");
    }

    @Test
    void reportKeyValuePair(TestReporter testReporter) {
        testReporter.publishEntry("a key", "a value");
    }

    @Test
    void reportMultipleKeyValuePairs(TestReporter testReporter) {
        Map<String, String> values = new HashMap<>();
        values.put("user name", "dk38");
        values.put("award year", "1974");

        testReporter.publishEntry(values);
    }

}

或者您为自己的报告器/扩展实现创建自定义

ParamterResolver
。另请参阅:“构造函数和方法的依赖注入”

© www.soinside.com 2019 - 2024. All rights reserved.