Dav*_*d W 10 ruby ruby-on-rails testunit minitest ruby-on-rails-4
从Rails 3.2升级到Rails 4后,我的应用程序正常运行,但我的测试用测试单元编写,是一场灾难.
据传Minitest与测试单元"兼容".但是,如果我尝试使用(现在捆绑的)Minitest,那么存在一系列差异 - 从assert*语句名称和参数到(很明显)许多其他东西既大又微妙.
如果我试图避免使用Minitest并尝试将我的测试单元gem保留在我的Gemfile中,则rake测试会爆炸,说,
undefined method 'refute_predicate' for class 'ActiveSupport::TestCase'
Run Code Online (Sandbox Code Playgroud)
这是因为已经打电话
require 'rails/test_help'
Run Code Online (Sandbox Code Playgroud)
:(
我一直在寻找,但还没有想出任何继续使用测试单元的方法.唯一的替代方案似乎是(对我们来说,大规模)重构我们的测试代码,因为我们80%的测试都会以某种方式破坏,或者Minitest与测试单元的不兼容性.
然而阅读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中使用测试单元?
您是否子类化:Test::Unit::TestCase 而不是 ActiveSupport::TestCase?
也许尝试将 minitest_tu_shim 添加到您的测试组:
https://github.com/seattlerb/minitest_tu_shim
或者确保子类化 ActiveSupport::TestCase
归档时间: |
|
查看次数: |
2218 次 |
最近记录: |