新手问题 [已解决] rake test 不能 load test 目录下的 **_test.rb 文件

xiaoronglv · 2014年08月13日 · 最后由 Victor 回复于 2014年08月13日 · 2427 次阅读

昨天看到玎玎在微博吐槽 Rspec,于是乎俺今天心血来潮的把某个项目的 RSpec 替换为了 minitest。但是遇到一个十分坑爹的问题。

问题描述

执行 rake test 后,所有的 test case 都没有跑起来。

临时的解决方案

于是我把测试文件放到 unit 文件夹,执行 rake test,测试用例就被正确的执行了。

俺的环境


group :test do
  gem "factory_girl_rails", "~> 3.3"
  gem 'rspec-rails', "2.11.0"
  gem "rspec-sidekiq"
  gem 'autotest-rails', '4.2.1'
  gem 'capybara'
  gem 'database_cleaner'
  gem 'launchy'
  gem 'mocha', '~> 0.14.0', require: false
  gem 'minitest', "~> 4.4.0"
  gem 'minitest-rails', "~> 0.5"
end

rake test 不能 load test 目录下的**_test.rb 文件?

其他项目都好好的,没碰到这个问题呀,求指点。

try test_*.rb

我今天下午又找到另外一个凑合的解决方案:在 Rakefile 中添加以下代码。

Rakefile

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList['test/**/*_test.rb']
  t.verbose = true
end

为什么我的 rake 不自动加载 test 目录下的文件呀?

至于的么

#1 楼 @andor_chen

Hi, 你的意思是,我的测试文件应该写成 test_product.rb, 而不是 product_test.rb?

能否给个相关的文档?

……Rails 默认就是 minitest,去掉 rspec 和 minitest 的 gem。

#5 楼 @Rei 他这个是老项目吧。

#6 楼 @zgm Ruby 1.9 引入 minitest 替换 test::unit,现在的 test::unit 是 minitest 的包装,所以这取决于 Ruby 版本。

#2 楼 @xiaoronglv

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.pattern = "test/*_test.rb"
end

别忘了 require 'rake/testtask'

需要 登录 后方可回复, 如果你还没有账号请 注册新账号