1

我的spec文件夹中有两个测试,当我单独运行它们时它们都是绿色的:

rspec spec\temp_stab_target_spec.rb   
32 examples, 0 failures

rspec spec\mock_spec.rb
10 examples, 0 failures

但是当我运行所有这些时:

rspec spec
42 examples, 32 failures  

一切为了spec\mock_spec.rb过去,一切为了spec\temp_stab_target_spec.rb不是

我做了一些研究,发现我遇到了与这里讨论的相同的问题。当我检查ARGV时,它包含spec. 我尝试before(:each) { ARGV.clear }像他一样使用,但无济于事。

另外,当我检查ARGVjust running时rspec spec\temp_stab_target_spec.rb,它是空的。

有人可以解释发生了什么或帮我解决它吗?我将扩展套件,我希望能够一次运行所有测试,而不是单独运行。

万一它是相关的,我正在运行ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-mingw32]rspec 2.12.2.

提前致谢

4

1 回答 1

0

不要在测试中使用对 ARGV 的引用!

将类似的内容输入到您正在测试的代码中。使用构造函数、工厂方法或任何有助于将代码从难以测试的部分中分离出来的方法。

于 2013-02-07T19:59:17.503 回答