0

在 Windows 上,我正在为 SublimeText3 安装 RubyTest 插件。

我正在使用 CentOS6.5 运行 Vagrant,我的 Rails4 项目在哪里配置了 rspec。

如何在 SublimeText3 中启动 RubyTest 插件,它通过虚拟 CentOS 上的 vagrant 而不是 Windows 上运行 rspec 测试?

我准备好了:

{
  "ignored_directories": [".git", "vendor", "tmp"],
  "run_rspec_command": "vagrant ssh --command \"'cd /vagrant/sites/sample_app && rspec spec'\""
}

有用!

但是如何设置运行:

1)只有活动的测试文件?

2)测试文件中只有活动行?

PS 它仅适用于 SublimeText2

4

1 回答 1

3

我使用自定义 RubyTest 命令取得了成功。制作该命令取决于您的个人设置,但我的配置如下所示:

{
  "ignored_directories": [ ".git", "tmp" ],
  "run_rspec_command": "cd $DIR_WITH_VAGRANTFILE && vagrant ssh --command \"cd /vagrant/`echo {relative_path} | sed 's/\\/spec.*$//'` && bundle exec rspec `echo {relative_path} | sed 's,^[^/]*.*/spec,spec,'`\"",
  "run_single_rspec_command": "cd DIR_WITH_VAGRANTFILE && vagrant ssh --command \"cd /vagrant/`echo {relative_path} | sed 's/\\/spec.*$//'` && bundle exec rspec `echo {relative_path} | sed 's,^[^/]*.*/spec,spec,'` -l{line_number}\"",
}

这些命令做了一些假设。

  1. 您有一个名为的环境变量$DIR_WITH_VAGRANTFILE,它具有包含 Vagrantfile 的目录的路径

  2. 该目录安装在您的 VM 中的 /vagrant

  3. 该目录下有几个 Rails 应用程序,例如 /vagrant/rails_app_1、/vagrant/rails_app_2

该命令的工作原理是从 relative_file 变量中提取完整的文件夹路径,并bundle exec rspec在文件名上远程执行。

如果您使用直接在 /vagrant 中的 rails 应用程序进行了更简单的设置,那么您应该能够摆脱类似以下的情况:

{
  "ignored_directories": [ ".git", "tmp" ],
  "run_rspec_command": "cd $DIR_WITH_VAGRANTFILE && vagrant ssh --command \"cd /vagrant && bundle exec rspec {relative_path}\"",
  "run_single_rspec_command": "cd DIR_WITH_VAGRANTFILE && vagrant ssh --command \"cd /vagrant && bundle exec rspec {relative_path} -l{line_number}\"",
}

注意:如果您在不同的设置和不同的位置有多个 Rails 应用程序,则必须为每个配置更改此设置。

于 2014-05-22T12:00:00.220 回答