Ruby on rails 仍然可以在rails 4中使用测试单元吗?

Ruby on rails 仍然可以在rails 4中使用测试单元吗?,ruby-on-rails,ruby,ruby-on-rails-4,testunit,minitest,Ruby On Rails,Ruby,Ruby On Rails 4,Testunit,Minitest,在从Rails3.2升级到Rails4之后,我的应用程序工作了,但是我用测试单元编写的测试是一场灾难 传闻Minitest与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,则会有很多不同之处——从assert*语句名称和参数到(显然)许多其他大而小的东西 如果我试图避免Minitest,并试图将我的测试单元gem保存在Gemfile中,rake测试就会爆炸,并说 undefined method 'refute_predicate' for class 'ActiveSup

在从Rails3.2升级到Rails4之后,我的应用程序工作了,但是我用测试单元编写的测试是一场灾难

传闻Minitest与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,则会有很多不同之处——从assert*语句名称和参数到(显然)许多其他大而小的东西

如果我试图避免Minitest,并试图将我的测试单元gem保存在Gemfile中,rake测试就会爆炸,并说

undefined method 'refute_predicate' for class 'ActiveSupport::TestCase'
这是因为打过电话

require 'rails/test_help'
:(

我已经搜索了一段时间,但还没有找到继续使用测试单元的方法。唯一的选择似乎是(对我们来说,大规模)重构我们的测试代码,因为Minitest与测试单元的不兼容性以某种方式破坏了我们80%的测试

然而,在阅读中,我发现在实质上没有提到这一点——我觉得我肯定错过了什么


是否有可能以系统的方式使Minitest与测试单元更兼容?或者继续在Rails 4中使用测试单元?

您是否子类化了:test::unit::TestCase而不是ActiveSupport::TestCase

也许可以尝试将minitest____shim添加到您的测试组:


或者确保将ActiveSupport::TestCase子类化为Yes Rails support Test::Unit

对测试用例使用全局搜索和替换来更改方法名称

下面是一个集成测试:

class UserFlowsTest < ActionDispatch::IntegrationTest
class UserFlowsTest
以下是控制器测试:

class UsersControllerTest < ActionController::TestCase
类UsersControllerTest
尝试
rails new app
复制自动生成的帮助程序和框架文件,并查看示例。

您能否更具体地说明遇到了哪些不兼容?assert_include vs.assert_include vs.assert_not_include vs.assert_not_include vs.assert_false vs.returne,assert_true vs.assert.这个过程符合新的基本测试要求hod缺失(有必要对其进行包装,以防止在控制器测试的请求之间涂抹控制器实例变量)。由于一系列测试仍然失败,我在这一点上放弃了。您是否愿意就此进行远程配对?给我发封电子邮件,我们将进行设置。