这是我的.rspec_parallel文件的内容。我使用parallel_tests gem在多个浏览器实例中运行测试。据我所知,gem使用RSpec中提供的相同格式化程序选项。
--format html --out results<%= ENV['TEST_ENV_NUMBER'] %>.html
这很棒,我能够获得通常从RSpec看到的HTML输出。然而,所有的&#39;放置&#39;消息和基本标准输出将记录到我的控制台窗口,而不是HTML文件。
如何将此输出输出到我已设置的每个HTML文件中?
答案 0 :(得分:0)
puts
将输出到$stdout
,其中output
实际上是RSpec::Core::Formatters::BaseFormatter
类的实例变量。 output
默认为$stdout
但是当您传入字符串时,它确定它应该创建一个新的StringIO
,然后将其输出到给定的文件名。因此puts
不会附加到@output
变量。
你可以做一些丑陋的事情,比如创建一个像
这样的跑步者文件File.open('some_file_name.html','w+') do |file|
file << `rspec spec --format html`
end
然后此文件将包含$stdout
的输出,但在这种情况下,您的puts
代码不会被html格式化。除此之外,您可以尝试构建自己的Custom Formatter,但可能需要进行相当多的源搜索以确保您能够正确捕获所有内容。
有人说,看来记者似乎已经曝光了添加自定义消息,但我不确定如何正确使用这个See Pull Request 1866
似乎它会像
it "has a name" do |ex|
ex.reporter.message("Custom Message Here")
#actual test
end
但是html格式化程序似乎忽略了这一点。我可以在$ stdout中看到输出,但不能在html文件本身中看到。
祝你好运。