从 Rails 3.2 升级到 Rails 4 后,我的应用程序可以工作,但是我用 test-unit 编写的测试是一场灾难。
传闻 Minitest 与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,会有很多差异 - 从 assert* 语句名称和参数到(显然)许多其他大而微妙的东西。
如果我尝试避免 Minitest 并尝试将我的测试单元 gem 保留在我的 Gemfile 中,rake 测试会爆炸,说,
undefined method 'refute_predicate' for class 'ActiveSupport::TestCase'
这是由于调用了
require 'rails/test_help'
:(
我一直在寻找一段时间,但还没有找到继续使用测试单元的任何方法。唯一的选择似乎是(对我们来说,大规模的)重构我们的测试代码,因为 Minitest 与测试单元的不兼容性以某种方式破坏了我们 80% 的测试。
然而阅读即http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/和http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3- 2-to-rails-4-0我发现没有实质上提到这一点——我觉得一定是遗漏了一些东西。
是否有可能以系统的方式使 Minitest 与测试单元更兼容?还是继续在 Rails 4 中使用测试单元?