1. ホーム
  2. ruby-on-rails

rake のタスクはどこで定義されていますか?

2023-12-05 15:40:21

質問

新しく作成されたRailsプロジェクト( rails someName によって生成された) 新しく作成されたRailsプロジェクトでは、次のような「デフォルトの」rakeタスクを実行することができます。

  • rake test
  • rake db:migrate
  • その他

問題は、これらのタスクがどこに記述されているかということです。デフォルトの Rakefile には、これらのタスクはすべてありません。

さらに、あるプロジェクトをチェックしたところ rspec を実行することができます。 rake spec を実行すると、すべてのテストが実行されます。どこで spec ターゲットはどこに定義されていますか?

どのように解決するのですか?

Rake タスクは、フォルダ構造から自動的に読み込まれる lib/tasks/*.rake

例えばdb:migrateというタスクについて話すとき、これはrails gemの中で lib/tasks/databases.rake

つまり、特定のプロジェクトでは、常にプロジェクトのフォルダ構造内のタスクと、指定されたgem内のすべてのタスクが存在することになります。