是否仍然可以在导轨4中使用测试单元?
从Rails 3.2升级到Rails 4之后,我的应用程序正常运行,但我用测试单元编写的测试是一场灾难。
据传Minitest与测试单元“兼容”。 但是,如果我尝试使用(现在捆绑的)Minitest,那么存在一系列差异 – 从assert *语句名称和参数到(很明显)许多其他大事和微妙的事情。
如果我试图避免使用Minitest并尝试将我的测试单元gem保留在我的Gemfile中,则rake测试会爆炸,说,
undefined method 'refute_predicate' for class 'ActiveSupport::TestCase'
这是因为已经打电话
require 'rails/test_help'
🙁
我一直在寻找,但还没有想出任何继续使用测试单元的方法。 唯一的替代方案似乎是(对我们来说,大规模)重构我们的测试代码,因为我们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中使用测试单元?
你是否正在inheritance:Test :: Unit :: TestCase而不是ActiveSupport :: TestCase?
也许尝试将minitest_tu_shim添加到您的测试组:
https://github.com/seattlerb/minitest_tu_shim
或确保子类ActiveSupport :: TestCase
是的Rails支持Test :: Unit。 这是它的指南。
http://guides.rubyonrails.org/testing.html
在测试用例上使用全局搜索和替换来更改方法名称。
这是一个集成测试:
class UserFlowsTest < ActionDispatch::IntegrationTest
这是一个控制器测试:
class UsersControllerTest < ActionController::TestCase
尝试使用rails new app
复制自动生成的帮助程序和框架文件,并查看示例。
- 这个MiniTest :: Unit :: TestCase警告是什么意思?
- Rails minitest,数据库更清洁如何转为use_transactional_fixtures = false
- 错误“无法加载此类文件 – 2.0 / Console_ext”在RubyMine中运行unit testing
- 使用Minitest测试控制器
- 如何生成一个报告,向我展示Rails 3.2,Ruby 1.9中最慢的运行测试?
- 如何在没有Rake的情况下运行完整的MiniTest套件?
- 使用MiniTest检查模型上的方法调用
- 在Rails中,为什么我的邮件主体只在我的测试中空了?
- 如何使用lib minitest或Test:Unit对unit testing进行着色?