我正在为Rails应用程序编写一些集成测试。该应用程序具有一组后台任务,通常通过cron
/ whenever
进行安排。由于cron
作业每隔几个小时才会运行一次,我想直接从集成测试中运行它们,而不是等待cron
个作业。
每个任务都由whenever
使用:
runner "<module>.<task>"
即。使用rails runner。
我的集成测试存在于应用程序的API包装器中,该应用程序与Rails应用程序位于不同的目录中。
问题是,我可以在与当前目录不同的目录上调用rails runner
,还是从Rails项目之外的rspec示例中调用Rails环境中的代码?
仅运行rails runner xxx
似乎无法正常工作(只打印使用情况标题),而不是Rails应用程序顶层以外的任何位置。
答案 0 :(得分:0)
你可以这样做:
<your-app-root>/script/rails runner <arguments>
其中<your-app-root>
是您的应用程序的根路径,而<arguments>
是您将为跑步者提供的参数。