举个例子,如果我有Book
模型和BooksController
自动测试,ZenTest套件的一部分将获取两者之间的关联并加载test/unit/book_test.rb
和{ {1}}进入测试套件。另一方面,如果我有test/functional/books_controller_test.rb
模型和Story
,则自动测试拒绝“注意到”StoriesController
答案 0 :(得分:0)
不幸的是,ZenTest不是rails插件,因此它不会受益于ActiveSupport的复数方法。因此,它使用简单的正则表达式来匹配文件名。查看ZenTest / autotest / rails.rb以查看Rails现有映射的列表。
最后,您有两个选择:
希望这有帮助!
答案 1 :(得分:0)
您可以覆盖.autotest
文件中的映射。在您的主目录或项目的根目录中。您可以require 'active_support'
获取String#pluralize
和String#singularize
。
借用lib/autotest/rails_rspec.rb
中的rspec-rails插件中的代码,它似乎已经使用ActiveSupport进行单数/复数魔术。不过,你可能需要从那里拉出RSpec特定的假设。
答案 2 :(得分:0)
我终于弄清楚发生了什么,毕竟它与没有什么与复数化有关。
它有所有与“ stories ”这个词有关,它可以是其中一个测试库的特殊目录(RSpec?Cucumber?我忘了)所以它被列在我的〜/ .autotest配置文件中作为例外!我不确定我什么时候剪切并将片段粘贴到文件中,可能是在我第一次开始使用ZenTest并且不知道我在做什么的时候。
Autotest.add_hook :initialize do |at|
%w{... stories ...}.each {|exception|at.add_exception(exception)}
end
添加尾部斜杠(“stories /”)恢复了测试并从前额中删除了砖痕。
所以我想从中吸取的教训是:在调试时检查杂散配置文件。