gpt4 book ai didi

ruby-on-rails - 在 Rails 5 的自定义测试文件夹中运行测试

转载 作者:行者123 更新时间:2023-12-04 06:31:02 24 4
gpt4 key购买 nike

当我想运行所有模型测试时

rails test:models

如果我同样想运行位于名为 service_objects 的文件夹中的测试(在 test 文件夹中) - 需要哪些步骤?

灵感来自 multiple , sources我在 lib/tasks 中尝试了以下操作:
namespace :test do
Rails::TestTask.new(classes: 'test:prepare') do |t|
t.pattern = 'test/service_objects/**/*_test.rb'
end
end

但是正在运行 rails test:service_objects返回此错误消息:

NameError: uninitialized constant Rails::TestTask

最佳答案

将 Rails::TestTask 替换为 Rails::TestUnit::Runner,如下文件所示,需要路径在顶部指示。

然后只运行 test/focused 目录中的测试,你可以调用

rails test:focused

并在测试目录中运行所有测试,除了 test/long_running 中的测试,您可以调用
rails test:without_long_running

使用 Rails 5.1.6 测试

新的 Rails 5 测试运行器确实有一些非常有用的功能,但有时您仍然需要更多的控制。
# lib/tasks/test_tasks.rake

require "rails/test_unit/runner"

namespace :test do
task :focused => "test:prepare" do
$: << "test"
test_files = FileList['test/focused/*_test.rb']
Rails::TestUnit::Runner.run(test_files)
end

task :without_long_running_tests => "test:prepare" do
$: << "test"
test_files = FileList['test/**/*_test.rb'].exclude('test/long_running/**/*_test.rb')
Rails::TestUnit::Runner.run(test_files)
end
end

信用应该转到 jonatack 2015 年 5 月在此处发布: https://github.com/rails/rails/issues/19997

关于ruby-on-rails - 在 Rails 5 的自定义测试文件夹中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465072/

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