首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Junit5 TestReporter

Junit5 TestReporter
EN

Stack Overflow用户
提问于 2018-09-26 09:44:25
回答 3查看 1.7K关注 0票数 3

我在试着理解TestReporter in Junit5

代码语言:javascript
复制
@BeforeEach
void beforeEach(TestInfo testInfo) {

}

@ParameterizedTest
@ValueSource(strings = "foo")
void testWithRegularParameterResolver(String argument, TestReporter testReporter) {
    testReporter.publishEntry("argument", argument);
}

@AfterEach
void afterEach(TestInfo testInfo) {
    // ...
}

publishEntryTestReporter中的用途是什么?

谁能解释一下..。提前谢谢..。

EN

回答 3

Stack Overflow用户

发布于 2019-11-22 18:27:55

"TestReporter“与"TestInfo”一起给出了当前测试的一个实例,这样您就可以获得有关实际测试的信息。然后发布它,在本例中用作某种记录器。

StringBuffer用于测试所需的可变、快速和同步的特性。

代码语言:javascript
复制
public class TestReporterTest {
    StringBuffer sbtags = new StringBuffer();
    StringBuffer displayName = new StringBuffer();
    StringBuffer className = new StringBuffer();
    StringBuffer methodName = new StringBuffer();

    @BeforeEach
    void init(TestInfo testInfo) {
        className.delete( 0, className.length());
        className.append( testInfo.getTestClass().get().getName());
        displayName.delete( 0, displayName.length());
        displayName.append( testInfo.getDisplayName());
        methodName.delete( 0, methodName.length());
        methodName.append( testInfo.getTestMethod().get().getName());
    }

    @Test
    @DisplayName("testing on reportSingleValue")
    void reportSingleValue(TestReporter testReporter) {
        testReporter.publishEntry( "className  : " + className);
        testReporter.publishEntry( "displayName: " + displayName);
        testReporter.publishEntry("methodName  : " + methodName);
        testReporter.publishEntry("algun mensaje de estatus");
    }

    @Test
    void reportKeyValuePair(TestReporter testReporter) {
        testReporter.publishEntry( "className  : " + className);
        testReporter.publishEntry( "displayName: " + displayName);
        testReporter.publishEntry("methodName  : " + methodName);
        testReporter.publishEntry("una Key", "un Value");
    }

    @Test
    void reportMultiKeyValuePairs(TestReporter testReporter) {
        Map<String, String> map = new HashMap<>();
        map.put("Fast and Furious 8","2018");
        map.put("Matrix","1999");

        testReporter.publishEntry( "className  : " + className);
        testReporter.publishEntry( "displayName: " + displayName);
        testReporter.publishEntry("methodName  : " + methodName);
        testReporter.publishEntry(map);
    }
}

运行测试

代码语言:javascript
复制
timestamp = 2019-11-22T12:02:45.898, value = className  : TestReporterTest
timestamp = 2019-11-22T12:02:45.904, value = displayName: testing on reportSingleValue
timestamp = 2019-11-22T12:02:45.904, value = methodName  : reportSingleValue
timestamp = 2019-11-22T12:02:45.904, value = algun mensaje de estatus


timestamp = 2019-11-22T12:02:45.919, value = className  : TestReporterTest
timestamp = 2019-11-22T12:02:45.920, value = displayName: reportMultiKeyValuePairs(TestReporter)
timestamp = 2019-11-22T12:02:45.920, value = methodName  : reportMultiKeyValuePairs
timestamp = 2019-11-22T12:02:45.921, Fast and Furious 8 = 2018, Matrix = 1999


timestamp = 2019-11-22T12:02:45.924, value = className  : TestReporterTest
timestamp = 2019-11-22T12:02:45.925, value = displayName: reportKeyValuePair(TestReporter)
timestamp = 2019-11-22T12:02:45.925, value = methodName  : reportKeyValuePair
timestamp = 2019-11-22T12:02:45.925, una Key = un Value
票数 2
EN

Stack Overflow用户

发布于 2020-01-15 10:50:55

除了前面的答案之外,当我们编写junit测试脚本时,如果我们想从流程中获取一些信息,我们通常会执行System.out.println,这在企业/企业世界中是不被推荐的。特别是在代码评审、同行评审中,我们建议将所有的System.out.println从代码库中删除。因此,在junit世界中,如果我们想推送或发布脚本,我们建议使用TestReporter publishEntry()方法。通过TestInfo的组合,我们可以从原始的junit脚本中读取几个信息。

希望这些事实也能支持你的问题。

票数 2
EN

Stack Overflow用户

发布于 2018-09-26 09:49:44

方法名表示要向报表发布一个新条目,JavaDocfor5.3.0支持该条目

https://junit.org/junit5/docs/current/api/org/junit/jupiter/api/TestReporter.html

这将允许您向测试报告中添加其他有用的信息;也许您希望将测试初始条件添加到报告中,或者添加一些环境信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52514720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档