我正在尝试System.out在我的单元测试(@Testmehotds)中打印一些数据,但它没有显示任何内容.但是,它在@Before方法中正常工作.我正在使用JUnit和Maven Surefire插件.
public class MyTests {
@Before
void init(){
System.out.println("Initializing some data..."); // <- It works.
}
@Test
void shouldRemoveSeries() {
System.out.println("TEST: Should remove series"); // <- It doesn't.
}
}
Run Code Online (Sandbox Code Playgroud)
maven-surefire-plugin 组态:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
谢谢.
小智 32
也进入这个.我正在使用gradle来管理我的任务,我把它放在build.gradle文件末尾:
test {
testLogging.showStandardStreams = true
}
Run Code Online (Sandbox Code Playgroud)
现在我明白了System.out.println(whateves).
要通过System.out.println获取编写的测试的输出,您需要配置maven-surefire-plugin以将此输出重定向到可以通过使用以下内容实现的文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
redirectTestOutputToFile选项会将 System.out.println等的输出重定向到一个单独创建的文件中:
摘自文档:
将其设置为"true"以将单元测试标准输出重定向到文件(在reportsDirectory/testName-output.txt中找到).
除此之外,System.out.println在一般的单元测试中没有意义.
使用日志
private static Logger log = Logger.getLogger(LoggingObject.class);
log.info("I'm starting");
Run Code Online (Sandbox Code Playgroud)
private final PrintStream stdout = System.out;
private final ByteArrayOutputStream output = new ByteArrayOutputStream();
private TerminalView terminalview;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36722 次 |
| 最近记录: |