[英]Writing multiple Rake tasks
我编写了两个 Rspec 测试,每个测试调用相同的 Rake 任务。 第二个任务永远不会运行,因为调用只触发一次,所以我需要重新启用。 我的问题是我无法运行 rake 任务,这是我正在使用的命令:
Rake::Task["product:delete"].reenable(product.id)
我收到此命令的运行时错误:
不知道如何构建任务 'product:delete[1]' 是吗? 产品:删除
任何人都知道我应该怎么写这个? 我很困惑,因为在孤立的情况下,我通过运行让它通过:
Rake.application.invoke_task("product:delete[#{product.id}]"
你不应该需要传递一个参数来reenable
(它不需要一个)
但是,您应该将参数传递给invoke
(而不是 invoke_task),而不是将其指定为任务名称的一部分。
例如
Rake::Task['product:delete'].reenable
Rake::Task['product:delete'].invoke(product.id)
您可以通过将任务保存在变量中来简化它:
t = Rake::Task['product:delete']
t.renable
t.invoke(product.id)
PS 它看起来很像那个错误“不知道如何构建任务‘product:delete[1]’你是说吗?product:delete”实际上来自你试图用任务名称中的参数调用任务而不是从重新启用。 可能是因为尝试了很多不同的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.