这是某人的上篮...
在Rails中返回<= 4天,由于Rakefile中的默认设置,我们只需在命令行输入$ rake
即可运行测试套件:
task default: [:rubocop, :spec, :teaspoon]
但是在Rails 5中,由于rake
已被rails
取代,如何运行默认的rake任务并不太明显。仅rails
给出了rails响应但不运行规范的可能命令的列表。 rails test
似乎合乎逻辑,但是它试图运行我们不使用的minitest。 rails spec
将运行Rspec,但不会运行 teaspoon 或 rubocop 。
这去哪儿了?为什么为什么这么简单的东西看起来如此简单以至于我很难抬头看自己?
答案 0 :(得分:1)
orig target
<http://www.example.com/#Marty> <http://www.example.com/#Eugene>
<http://www.example.com/#Marty> <http://www.example.com/#Mike>
在Rails 5.2.1上为我执行了这些任务,尽管我在任何地方都找不到它。
答案 1 :(得分:0)
只需创建一个新的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
,您将在控制台中看到FOO
和BAR
打印。
如果您不知道在何处将文件放置在上面的代码中,请检查您的/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,它可能会为您提供更好的帮助。我在项目中使用了它,并且效果很好。