繁体   English   中英

如何在Rails 5中运行默认的rake任务?

[英]How to run default rake tasks in Rails 5?

给某人上篮...

回到Rails <= 4天,由于Rakefile中的默认设置,我们只需在命令行中输入$ rake即可运行测试套件。

task default: [:rubocop, :spec, :teaspoon]

但在Rails的5它不是那么明显怎么办好,现在默认rake任务rake已被取代的rails rails给出了rails响应但不运行规范的可能命令列表。 rails test似乎合乎逻辑,但是它尝试运行我们不使用的minitest。 rails spec将运行Rspec的但不是茶匙rubocop。

这去哪儿了? 为什么为什么这么简单的东西看起来如此简单以至于我很难抬头看自己?

尽管我在任何地方都找不到文档,但是rails default在Rails 5.2.1上为我执行了这些任务。

只需创建一个运行其他任务的新rake任务即可:

LIB /任务/ my_extensions.rake
 task :my_test do Rake::Task[:foo].invoke Rake::Task[:bar].invoke end # or the short version: # task my_test: [:foo, :bar] task :foo do puts "FOO" end task :bar do puts "BAR" end 

运行rails my_test ,您将在控制台中看到FOOBAR

如果您不知道将文件放置在何处以编写上面的代码,请检查/Rakefile

 # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. require_relative 'config/application' Rails.application.load_tasks 

它说将它们写在lib/tasks ,并以.rake ,您不需要它们。 在您的特定问题中,将我的代码从:foo:bar更改为您的特定任务:rubocop :spec :teaspoon

但是,看起来您正在执行一些BDD或TDD周期。 查看rails Guard ,它可能会对您有所帮助。 我在项目中使用了它,并且效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM