3

我试图在测试期间将文本输出到控制台,以了解发生了什么并有测试的历史记录,但似乎没有任何效果,printf 和 $stdout.write 都没有。

我应该只使用文本日志文件并完成它还是可以输出到詹金斯控制台?

4

3 回答 3

2

https://content.pivotal.io/blog/what-happened-to-stdout-on-cihttps://github.com/ci-reporter/ci_reporter#environment-variables中所述,您需要设置CI_CAPTURE=off

于 2014-11-19T10:42:46.793 回答
1

这是我的 jenkins 配置的副本,用于在 Jenkins 中运行 Rails 应用程序的 RSpec 测试:

[ -d jenkins ] && rm -rf jenkins
mkdir jenkins

cp ~/configs/yourApp/default-db-config config/database.yml

rake db:migrate
rake db:test:prepare

export RAILS_ENV=test
export SPEC_OPTS="--no-drb --format documentation --format html --out jenkins/rspec.html"

rake spec

首先,它会从工作区中删除任何以前的测试历史记录(如果存在)。接下来,它在工作区中创建一个 jenkins 目录来存储测试输出。

然后它设置应用程序以使用有效的数据库配置进行测试(我没有将数据库配置文件存储在我的 git 存储库中)。

最后,如果需要,它会迁移开发数据库,​​准备测试数据库,将 RAILS_ENV 设置为测试并使用指定的 SPEC_OPTS 运行测试。

重要的位如下:

--format 文档...这会将测试进度的合理输出发送到您的控制台日志。正确编写测试,这将比您可能考虑使用的任何 puts 命令有用得多。

--format html ... 这会将测试结果的 HTML 文件输出到之前创建并在 --out 属性中指定的 jenkins 目录。将以下内容添加到您的职位描述中,以在该职位的主页上显示这些结果:

<iframe src='http://jenkins.your-domain.com/job/your-tests/ws/jenkins/rspec.html' width="100%" height="600" frameborder="0"/>

希望这能让您开始并运行 RSpec 的更有用的 jenkins 测试作业。

于 2013-11-09T00:52:59.737 回答
0

不确定詹金斯是否会改变这一点(我不这么认为),但在 Rspec 中你可以写

puts response.body

或者

puts "My mommy made me mash my M&M's"

或您想要的任何其他内容,它将被放入控制台/结果中

于 2013-09-17T14:23:03.820 回答