学习如何在 Exercism 上测试你的 Ruby 练习
用下面的命令运行测试:
$ ruby hamming_test.rb
只有第一个测试会被执行,其余的都已经被 skip 方法设为待定。每让一个测试通过后,就删掉或注释掉下一个 skip。
skip 方法会让测试套件不运行某个测试。它通常用来避免运行尚未实现的功能所对应的测试,这样你就能专注于当前正在处理的部分。
测试运行摘要会列出被跳过的测试数量。在完成一个练习之前,你应该禁用所有的跳过。
如果你想要彩色输出,用下面的命令运行测试:
$ ruby hamming_test.rb -p
如果你想看到测试名称,用下面的命令运行测试:
$ ruby hamming_tests.rb -v
如果你只想运行一个测试,可以用正则表达式风格的匹配来指定一个或一组测试。
$ ruby hamming_tests.rb -n /empty/
你也可以把这些选项组合起来使用。
既然你现在有了挑选要运行的单个或一组测试的本事,你也许就会想禁用所有的跳过。
利用 Ruby 中方法可以被重写这一特性,如果你加上这行代码:
def skip ; end
像这样放进 Hamming 测试文件里:
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
那么所有跳过都仍会照常求值,但会让你的测试照常运行。
当然,每次都要改所有文件会很烦人,所以你可以像我们开发这些练习时那样做:建一个包含 skip 定义的文件,需要时用 require 把它作为库引入。
我们建了一个 lib 文件夹来存放这些“辅助”内容,它长这样:
require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
# ruby -I../lib -rdisable_skip <filename_test.rb>
module Minitest
class Test
def skip(_msg='', _bt=caller)
end
end
end
关于如何使用它的说明就写在那个文件清单的注释里,而这份文件清单是完整的。