如何停止 Minitest?
在 Ruby 1.9.1 中,我发现 ctrl + c 只能终止单个单元测试,并且您无法通过这种方式停止整个测试程序的运行。
相比之下,在 Ruby 1.8 中的 test/unit 下,它会停止所有测试。
1.9.1下进度条示例:
ruby1.9.1 test/ts_foo.rb
Loaded suite test/ts_foo
Started
………………^CF………… ...................................................... ^CE..^C^C^CE..E..^C^C^C ^CEE^CE^C E^CE^CE^C^C^CEE^CE^CE^CE^CE^CE^CE..^CE...^C..E..^CE.....^CE..^CE ......^C^C^CE.E.^CE^CE^C^CE^CE..^CE..^CE.^CE..^CE...^CE.^CE。 ^CE.^CE...^CE....^CE..............
在 1.8.7 下:
$ ruby test/ts_foo.rb
Loaded suite test/ts_foo
Started
...................................................... ……^C.
我在 Ubuntu Karmic Koala 上运行这个,Ruby 版本是
$ ruby1.9.1 --version
ruby 1.9.1p243 (2009-07-16 revision 24175) [x86_64-linux]
$ ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
In Ruby 1.9.1, I find that ctrl + c only kills a single unit test, and you can't stop the running of the entire testing program that way.
By contrast, under test/unit in Ruby 1.8, it stops all the tests.
Sample progress bar under 1.9.1:
ruby1.9.1 test/ts_foo.rb
Loaded suite test/ts_foo
Started
..............................^CF..............................................................................^CE..................^C^C^CE..E..^C^C^C^CEE^CE^CE^CE^CE^C^C^CEE^CE^CE^CE^CE^CE^CE..^CE...^C..E..^C.E......^CE..^CE.......^C^C^CE.E.^CE^CE^C^CE^CE..^C.E...^CE.^CE..^CE...^C.E..^C.E..^C.E..^CE...^CE....^CE..............
And under 1.8.7:
$ ruby test/ts_foo.rb
Loaded suite test/ts_foo
Started
........................................................^C.
I'm running this on Ubuntu Karmic Koala, and the Ruby versions are
$ ruby1.9.1 --version
ruby 1.9.1p243 (2009-07-16 revision 24175) [x86_64-linux]
$ ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看来 ruby-1.9.1 包含了一个非常古老的 minitest 版本。
这种(不寻常的)行为很久以前就已得到修复:minitest 提交。
解决方案可能是切换到更高的 1.9 版本(ruby-1.9.2 的 minitest 确实包含该修复)或升级本地 ruby-1.9.1 minitest(手动或希望仅通过安装最新的 minitest gem)。
It appears that ruby-1.9.1 includes a very ancient version of minitest.
This (unusual) behavior has been fixed quite a while ago: minitest commit.
The solution might be either to switch to later 1.9 version (ruby-1.9.2's minitest does include that fix) or to upgrade local ruby-1.9.1 minitest (either manually or hopefully just by installing latest minitest gem).