我有一个正在使用 RSpec 测试的 Rails gem。我的 gem 的代码在 lib/my_gem 中,并且在我创建 gem 时 Rails 为我生成了一个测试应用程序,在文件夹 test/dummy 中。我在 test/dummy/spec/models/task_spec.rb 中有我的规格。我可以使用 rspec 命令很好地运行这些规范。
现在我想使用 Spork 和 Guard 进行测试。我按照 RailsCasts http://railscasts.com/episodes/285-spork在我的测试/虚拟应用程序中安装 spork。它确实有效,但我有两个问题:
- 如何让 spork 重新加载我的 lib/my_gem/* 文件?我尝试将 ../../lib/my_gem/... 之类的路径放在我的 Guardfile 中,但它不会监视/重新加载文件。
- 出于某种原因,rspec 忽略了我在 spec_helper 中的选项,例如“config.filter_run :focus => true”行。我确实将这些正确地放入了 Spork.prefork。当我使用 rspec spec/models/task_spec.rb 手动运行 rspec 时,此设置有效,但当我使用 guard/spork 时,它被忽略了。