gpt4 book ai didi

ruby-on-rails - 如何在 Rails 的同一个文件中多次运行 rake 任务

转载 作者:行者123 更新时间:2023-12-04 03:42:14 25 4
gpt4 key购买 nike

我在一个文件中编写了多个测试用例,我想在每个测试中单独运行 rake 任务。当我使用此命令运行测试用例时:

ruby -I test test/integration/my_test_file.rb 

然后 rake 任务只运行一次。我的许多测试都失败了。但是如果我用这个命令单独运行所有失败的测试

ruby -I test test/integration/my_test_file.rb -n test_name

那么所有的测试都通过了。

问题是 rake 任务在第一种情况下只运行一次。但是对于单个测试,Rake 任务每次都会为每个测试用例运行

这是我在测试文件中设置 rake 任务的方式

require "rake"
MyAppName::Application.load_tasks

在每个测试用例中我都有这个:

Rake::Task['tasks:my_task_name'].invoke

那么我该如何解决我的问题呢?

最佳答案

好的,我得到了答案。

这里是您如何在同一范围内再次调用 Rake::Task['tasks:task_name'],无论您想在 Controller 文件或测试文件中运行 rake 任务。

每当 Rake::Task['tasks:my_task_name'].invoke 执行时,它都会设置一个标志 @already_invoked,这意味着您不能在其中再次调用该任务同一个文件。所以你可以这样做

Rake::Task['tasks:my_task_name'].invoke

Rake::Task['tasks:send_overdue_reminders'].reenable

这里Rake::Task['tasks:send_overdue_reminders'].reenable翻转@already_invoked的状态,你可以在同一个文件中多次调用rake任务

关于ruby-on-rails - 如何在 Rails 的同一个文件中多次运行 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36591038/

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