2015-02-05 62 views
7

我最近更新了一个Grails 2.2项目到2.4.4,我发现当运行'grails test-app'时,所有的日志消息(信息,调试,错误等)现在都输出到控制台,而不是到生成的测试报告。如何将日志消息重定向到Grails 2.4.x +中的测试报告?

以前所有的日志输出都会附加到测试报告的主体中,我只会在控制台上收到测试结果。现在,默认行为是将日志消息打印到控制台中,以便在运行数百个测试时难以解析输出。

| Compiling 1 source files.... 
| Running 2 unit tests... 1 of 2 
2015-02-05 12:16:53,965 [main] INFO testapp.HelloController - Hello World Log 
| Completed 1 unit test, 0 failed in 0m 5s 
| Tests PASSED - view reports in /Users/pk/workspace/testapp/target/test-reports 

我已经确认这是Grails 2.4.4的默认行为(可能在此之前的某个时间)。有趣的是,通过'println'命令直接打印到stdout的消息出现在日志文件中。

有谁知道如何改变这种行为打印所有日志输出到测试报告,而不是控制台?

+0

我有相同的问题,最后一次测试。你找到了解决方案吗? – Fernando 2015-04-23 01:37:05

+0

你能告诉我们你的'grails-app/conf/Config.groovy'文件吗? – 2016-01-05 17:03:53

+0

可能是一个Gradle事物。检查是否添加'testLogging.showStandardStreams = false'解决问题 – Raffaele 2016-01-07 15:21:00

回答

-1

添加-echoOut开关的grails测试应用程式内,https://grails.org/wiki/1.2%20Release%20Notes

grails test-app -echoOut 

有许多上测试应用程式内其他有用的开关,以及包括:

回波System.err的消息:

grails test-app -echoErr 

力运行测试(不这样做的Grails干净& & Grails的测试应用程序)之前清洁:

grails test-app -clean 

只运行单元测试:

grails test-app unit: 

只运行集成测试:

grails test-app integration: 

在特定的环境中运行:只针对特定

grails -Dgrails.env=production test-app 

运行测试测试类(如com.foo.MyControllerTest S),一定要留掀起的“测试”后缀

grails test-app com.foo.MyController 

只重新运行失败,你跑你的测试

grails test-app to output to console

+0

不幸的是,这不会改变行为,-echoOut标志将日志输出发送到标准输出但不发送到测试报告。我正在寻找的是将日志消息记录到测试报告中,而不是stdout,这是2.2和更低版本中的默认行为。 – 2016-01-06 17:38:46

相关问题