如何使用Vagrant在Sublime Text中运行Ruby Test

时间:2014-05-22 10:43:20

标签: ruby-on-rails rspec vagrant sublimetext ruby-test

在Windows上我安装了SublimeText3的RubyTest插件。

我在CentOS6.5上运行Vagrant我的Rails4项目配置了rspec。

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

我设置:

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

有效!

但是如何设置run:

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

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

PS仅适用于SublimeText2

1 个答案:

答案 0 :(得分: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

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

    如果你使用rails应用程序直接在/ vagrant中进行更简单的设置,那么你应该可以使用以下内容:

    {
      "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应用程序,则必须为每个配置更改此设置。