System.out.print()在测试方法中没有显示任何内容

Héc*_*tor 21 java junit maven

我正在尝试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).


khm*_*ise 9

要通过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在一般的单元测试中没有意义.


Jor*_*lla 7

使用日志

private static Logger log = Logger.getLogger(LoggingObject.class);
log.info("I'm starting");
Run Code Online (Sandbox Code Playgroud)

System.setOut()

private final PrintStream stdout = System.out;
private final ByteArrayOutputStream output = new ByteArrayOutputStream();
private TerminalView terminalview;
Run Code Online (Sandbox Code Playgroud)

  • 我已经尝试过 Logger,但它仍然没有显示任何内容。测试没有通过,我的意思是,它们运行时出错,也许这就是日志记录不起作用的原因? (3认同)
  • 它对我不起作用:( 并且 `Logger` 在 @Before 方法中不起作用,而 System.out.print() 可以。 (2认同)
  • 日志链接已损坏。 (2认同)