Rake
Rake 是一个为 Ruby 和 Rails 应用程序广泛使用的任务运行器。 例如,Rails 提供了预定义的 Rake 任务,用于创建数据库、执行迁移以及运行测试。 您还可以创建 自定义任务以自动执行特定操作——运行代码分析工具、备份数据库等。
IntelliJ IDEA 提供了一种方便的方法来运行、 调试和重新加载 Rake 任务。 此外,您可以使用 运行/调试配置 来运行具有特定参数的任务:您可以传递任务参数、指定环境变量等。
在运行 Rake 任务之前
请确保在项目解释器中 安装了'rake' gem。
请检查 Rakefile 是否位于项目的根目录。
运行任务
IntelliJ IDEA 允许您运行任意 Rake 任务。 例如,看看如何运行在 Rails 应用程序中迁移数据库所需的 db:migrate 任务:
使用 Run Anything 运行任务
请执行以下操作之一:
在弹出的窗口中,按两次 Ctrl 并开始输入 db:migrate。 从列表中选择 rake db:migrate 并按 Enter。

请前往 。 在出现的弹出窗口中,开始输入 db:migrate ,选择 db:migrate ,然后按 Enter。
在调用的 执行 'db:migrate' 对话框中,选择所需的迁移版本和环境。 点击 OK。

从编辑器运行任务
在 *.rake 文件中,请执行以下操作之一:
在所需任务旁边的边距上点击 运行 Rake 任务 按钮。
请将文本光标放在所需任务名称处,按 Alt+Enter。
根据您是要运行还是调试任务,请选择 或 。 按下 Enter。
在您运行了 Rake 任务之后,IntelliJ IDEA 会自动创建一个特殊的配置文件——一个临时的 run/debug configuration。 您可以 自定义此配置的设置 ,例如,您可以传递任务参数、指定环境变量等。 然后,您可以 保存自定义配置,以便将来快速 运行此配置。
使用运行/调试配置运行任务
IntelliJ IDEA 会自动创建 Rake 运行配置 ,用于在 Rails 应用程序中运行 Minitest 和 RSpec 测试 ——测试 和 规范。 您可以通过以下方式之一运行这些任务或任何其他任务,并使用现有的运行/调试配置:
请按两次 Ctrl 调出 Run Anything(运行任何内容) 弹窗。 开始输入所需的配置名称,从列表中选择,然后按 Enter。
在工具栏上选择所需配置并点击
Shift+F10。
请转到 Alt+Shift+F10 并从列表中选择所需的配置,然后按 Enter。
重新加载 Rake 任务
有时候需要重新加载 Rake 任务。 例如,如果您创建了一个自定义任务并需要运行它,这可能会很有用。 要重新加载 Rake 任务,请执行以下操作之一:
请按 Ctrl+Shift+A 并开始键入 Reload Rake Tasks。 从列表中选择此项目并按下 Enter。
请前往 。 在调用的弹出窗口中,选择
rake --tasks并按下 Enter。
配置运行任务的参数
当您 首次运行 Rake 任务时,IntelliJ IDEA 会自动创建一个相应的 Rake 临时配置 ,此配置可以保存。 如果必要,您可以从预定义模板中 Rake 手动 创建 run/debug 配置。
要自定义运行/调试配置,请执行以下操作:
通过以下方法之一打开 运行/调试配置 对话框:
从主菜单中选择 。
在 Navigation bar 可见 () 的情况下,从运行/调试配置选择器中选择 。
请按 Alt+Shift+F10 然后按 0。
在打开的 运行/调试配置 对话框中,选择 Rake 组中的所需配置,并指定其设置。

运行/调试配置:Rake
配置选项卡
条目 | 描述 |
|---|---|
名称 | 在此字段中,指定当前运行/调试配置的名称。 |
任务名称 | 指定要执行的 Rake 任务名称。 请注意,您可以使用 自动完成 (Ctrl+Space )查看可用的任务。 |
实参 | 指定 参数 传递给 Rake 任务。 这些参数应以逗号分隔。 例如:
|
开启调用/执行跟踪,启用完整回溯 | 启用 |
执行操作前进行演练 | 启用 |
显示任务和依赖项,然后退出 | 启用 |
为框架附加测试运行程序 UI | |
工作目录 | 指定运行任务使用的工作目录。 例如,当正在运行的脚本通过相对路径加载其他脚本时,此选项生效。 |
环境变量 | 请指定环境变量列表为名称-值对,用分号分隔。 或者,点击 |
Ruby 实参 | 指定要传递给 Ruby 解释器的 command-line arguments。 |
Ruby 解释器 | 指定所需的 Ruby 解释器。 您可以选择项目默认的 Ruby 解释器,或者从已配置的 Ruby 解释器列表中选择一个不同的。 |