作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Maven 中运行了一个基于 JUnit 的测试套件,总共进行了大约 200 个测试。许多生成 Log4J DEBUG 或 ERROR 行,我看到它们全部混入我的 surefire-reports 目录中的一个长文件中。
我想查看按测试划分的所有这些输出,这样我就可以发现哪些测试产生了哪些输出。我该怎么做?
最佳答案
最直接的解决方案是在每个测试的开始和结束时调用以下方法:
static void printBeginning(PrintStream stream) {
String methodName = Thread.currentThread().getStackTrace()[0].getMethodName();
stream.format("---- Beginning Test: %s ----%n", methodName);
}
但是,如果您想使用 surefire,方法是编写您自己的自定义 RunListener :
基本上,在 Maven 中分配 RunListener,如 this documentation
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value>
</property>
</configuration>
</plugin>
[...]
</plugins>
然后代码将由 Surefire 运行。
您可以在此处阅读有关如何执行此操作的更多信息:Using JUnit RunListener with Maven
关于java - 如何在 Maven surefire 中查看逐个测试标准输出/标准错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568466/
我是一名优秀的程序员,十分优秀!