gpt4 book ai didi

ruby-on-rails - Rails 和 MiniTest : add additional folder

转载 作者:行者123 更新时间:2023-11-28 19:41:46 26 4
gpt4 key购买 nike

我使用 Ruby 2 和 Rails 4。我有一个文件夹 test/lib ,其中有一些测试。但是正在运行 rake test不使用它们。只有其他测试(模型、 Controller 等)正在运行。

我必须在哪里添加 lib文件夹?

我已经试过了 MiniTest::Rails::Testing.default_tasks << 'lib' , 但我得到 NameError Exception: uninitialized constant MiniTest::Rails .我没有将 minitest gem 添加到我的 Gemfile 中,因为 Ruby 2 默认使用它。

最佳答案

使用MiniTest::Rails::Testing.default_tasks << 'lib'你需要添加 minitest-rails gem 到你的 Gemfile。它与 Minitest 是分开的,并添加了许多 Minitest 缺少的功能,这些功能默认情况下在 Rails 中是不启用的。 minitest-rails 添加了其他功能,例如为所有具有测试的目录创建 rake 任务。因此,无需对 Rakefile 进行任何更改,您就可以像这样运行:

$ rake minitest:lib

或者,要以老式的方式执行此操作,您可以将以下内容添加到您的 Rakefile 中:

namespace :test do

desc "Test lib source"
Rake::TestTask.new(:lib) do |t|
t.libs << "test"
t.pattern = 'test/lib/**/*_test.rb'
t.verbose = true
end

end

Rake::Task[:test].enhance { Rake::Task["test:lib"].invoke }

这假设您希望在不使用任何数据库装置的情况下运行您的库测试。如果您想要固定装置和数据库事务,那么您应该创建依赖于“test:prepare”的 rake 任务。

namespace :test do

desc "Test lib source"
Rake::TestTask.new(:lib => "test:prepare") do |t|
t.libs << "test"
t.pattern = 'test/lib/**/*_test.rb'
t.verbose = true
end

end

Rake::Task[:test].enhance { Rake::Task["test:lib"].invoke }

关于ruby-on-rails - Rails 和 MiniTest : add additional folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com