2010-10-05 66 views
4

大约6个月前,我从TextMate切换到MacVim,开展了我所有的开发工作,主要包括Ruby,Ruby on Rails和JavaScript编码。如何在MacVim中运行Ruby规格和/或测试而不锁定MacVim?

使用TextMate,无论何时我需要运行规范或测试,我都可以在测试或spec文件上命令+ R,并打开另一个窗口,结果将以'漂亮'格式显示。如果规范或测试是漫长的,我可以继续使用代码库,因为测试/规范是在单独的进程/窗口中运行的。测试运行后,我可以直接点击结果到spec文件中的相应行。

Tim Pope的优秀rails.vim插件非常接近于在MacVim环境中模拟此行为。运行:当当前缓冲区是测试或规格运行文件时分离缓冲区以显示结果。您可以浏览结果并键入文件中的相应位置。

rails.vim方法的问题在于,它在测试运行时锁定了MacVim窗口。这可能是一个大型应用程序的问题,它可能会在测试中内置很多setup/teardown。此外,TextMate显示的可视红/绿html结果(通过--format漂亮,我假设)比分割窗口更容易扫描。

这个家伙在18个月前就来了:http://cassiomarques.wordpress.com/2009/01/09/running-rspec-files-from-vim-showing-the-results-in-firefox/他用一些黑客工作的脚本,但是测试仍然在MacVim内运行并锁定当前窗口。

有关如何在MacVim中完全复制上述TextMate行为的任何想法?

谢谢!

+0

您是否考虑过使用自动测试来自动运行测试? – Himanshu 2010-10-07 01:14:59

+0

是的,我使用自动测试,但我个人仍然发现我需要上述的工作流程,尤其是在通过仅涉及文件子集的某些功能进行工作时。 – Henry 2010-10-07 15:57:20

回答

1

有一个名为vim-addon-background-cmd的插件可以让你在后台运行任务而不是锁定vim接口。您将不得不创建调用来运行后台命令。有关如何做到这一点的更多信息,请参阅docs

0

几个月前,我一直在寻找同样的东西。然后我发现了rspec自动测试。现在我打开一个单独的终端窗口,显示我上次运行的测试。如果我更改任何相关代码文件,我的测试会自动运行(文件被监视,如果它们更改测试运行)。

如果您想在非导轨项目中使用相同的自动测试类型行为,您可以查看看守宝石。它的功能类似于自动测试,但您可以在任何框架中使用它。