我的ruby脚本中有断言。
这些断言中的每一个都有一条消息来描述断言。
所以我有两个围绕这个问题的问题
我希望与每个断言关联的消息显示为 测试进展。目前Message只显示任何东西 失败
当任何断言失败时,整个测试退出。我怎么做的 即使一个断言失败,测试仍会继续进行?
我正在使用的示例代码
assert_match("hey", "hey this is a test", "The word exists in the string")
所以输出目前看起来像 -
ruby ruby11.rb -v v
Loaded suite ruby
Started
test_ruby(Ruby):
F
Finished in 40.555587 seconds.
1) Failure:
test_ruby11(Ruby11) [ruby11.rb:73]:
Text box not displayed
<false> is not true.
1 tests, 3 assertions, 1 failures, 0 errors
我希望它看起来像
ruby ruby.rb -v v
Loaded suite ruby
Started
test_ruby(Ruby):
F
ok 1 - First test successful
ok 2 - The text is displayed
ok 3 - The image is present
not ok 4 - Text box not displayed
ok - The picture is visible
Finished in 40.555587 seconds.
1) Failure:
test_ruby(Ruby) [ruby11.rb:73]:
Text box not displayed
<false> is not true.
1 tests, 4 assertions, 1 failures, 0 errors
因此,在上述期望的显示中,所有断言状态都显示为执行测试的时间。 (像perl中的TAP一样)。 我是红宝石的新手,所以我确信有一些基本的我做错了。
此外,我在运行脚本时尝试了详细参数ruby ruby.rb -v v
。但这也无济于事。
帮助将被推荐
答案 0 :(得分:0)
这就是我的工作方式,但请考虑以下因素:
test_text_appears
和test_image_appears
测试。每次测试都有一个断言意味着当某些东西断开时,你可以看到所有失败的断言,而不仅仅是在有大量断言的测试中的第一个断言。test_text_appears
。答案 1 :(得分:-2)
具体而言,TAP输出没有多少选择。一个测试框架是Bacon,它是带有TAP输出的RSpec克隆,但它似乎不再有效。
如果您想要的是与持续集成的兼容性,可以使用ci_reporter gem将测试结果(从 Test :: Unit和RSpec)转换为JUnit XML格式,将使它与Jenkins / Hudson,Bamboo和其他支持JUnit的CI服务器一起使用。
但与RSpec不同,Test / Unit有一个限制,它不报告通过的测试。有关通过RSpec HTML格式化程序运行Test / Unit的讨论,其中包括通过测试的名称here。
2015年更新:您可能希望了解MiniTest,它现在越来越受欢迎,并且有许多格式化插件,并且非常灵活/可扩展。