我有一个应用程序,其中包含一些写入minitest的规范。像往常一样,我使用rake
启动它们。
因为有时我得到一个随机的结果,我的规格可以通过一次,而在另一次失败。
在这种情况下,我可以保留序列号,并在修复后重播。
因为我有这种测试(随机结果),我通常会运行rake
很多次,只是为了确保应用程序没问题。
我想知道是否有一种很好的方法可以执行多次rake
测试(例如100次),如果出现任何故障或任何错误,请停止测试?
答案 0 :(得分:5)
我认为你应该再考虑一下你的考试,而不是考试。随机测试结果对我来说不合适。
测试中的随机因素是什么?你能为随机因子编写一个mock元素,并用mock元素的不同值重复测试。所以你得到一个“完整”的测试。
答案 1 :(得分:0)
我创建了一个带有随机结果的虚拟测试来模拟你的情况:
#store it as file 'testcase.rb'
gem 'test-unit'
require 'test/unit'
class X < Test::Unit::TestCase
def test_1
num = rand(10)
assert_true( num < 5, "Value is #{num}")
end
end
以下任务调用测试10次并在第一次失败后停止:
TEST_REPETION = 10
task :test do
TEST_REPETION.times{
stdout = `ruby testcase.rb`
if stdout =~ /\d+\) Failure/
puts "Failure occured"
puts stdout
exit
else
puts 'Tests ok'
end
}
end
对于实际使用,我会调整一些部分:
puts 'Tests ok'
定义一个计数器,以查看测试的频率是多少次puts stdout
您可以将结果存储在结果文件中吗?