这个问题听起来很愚蠢,但是我从来没有在网上找到过这样做的答案。假设你有一个像这个页面一样的测试套件:http://en.wikibooks.org/wiki/Ruby_Programming/Unit_testing或代码:
require "simpleNumber"
require "test/unit"
class TestSimpleNumber < Test::Unit::TestCase
def test_simple
assert_equal(4, SimpleNumber.new(2).add(2) )
assert_equal(4, SimpleNumber.new(2).multiply(2) )
end
def test_typecheck
assert_raise( RuntimeError ) { SimpleNumber.new('a') }
end
def test_failure
assert_equal(3, SimpleNumber.new(2).add(2), "Adding doesn't work" )
end
end
运行代码:
>> ruby tc_simpleNumber2.rb
Loaded suite tc_simpleNumber2
Started
F..
Finished in 0.038617 seconds.
1) Failure:
test_failure(TestSimpleNumber) [tc_simpleNumber2.rb:16]:
Adding doesn't work.
<3> expected but was
<4>.
3 tests, 4 assertions, 1 failures, 0 errors
现在,如何使用变量(什么类型?)来保存测试结果?例如,像这样的数组:
[{:name => 'test_simple', :status => :pass},
{:name => 'test_typecheck', :status => :pass},
{:name => 'test_failure', :status => :fail},]
我是测试新手,但迫切想知道答案...
5条答案
按热度按时间pieyvz9o1#
你需要执行你的测试脚本文件,就是这样,结果会显示通过或失败。
假设您保存文件test_unit_to_rspec.rb,然后执行以下命令
uhry853o2#
解决了在测试运行器调用中设置高详细级别的问题。
http://ruby-doc.org/stdlib-1.8.7/libdoc/test/unit/rdoc/Test/Unit/UI/Console/TestRunner.html
对于每个测试用例,结果将以良好的格式保存在IO流中。
xt0899hw3#
使用'-v'(详细)会怎样:
这将显示更多信息
yhived7q4#
您可以查看另一个Nat's posts来获取结果。对您的问题的简短回答是没有用于获取结果的变量。您得到的是:
加载套件我的特殊测试
开始日期
..
用时1.000935秒。
2个测试,2个Assert,0个失败,0个错误
如果你想向其他人报告发生了什么,这不是很有帮助。Nat的另一篇文章展示了如何在rspec中 Package Test::Unit以获得更好的结果和更大的灵活性。
vojdkbi05#
输出示例: