Как запустить спецификации Ruby и / или тесты в MacVim без блокировки MacVim? - PullRequest
4 голосов
/ 05 октября 2010

Около 6 месяцев назад я перешел с TextMate на MacVim для всех моих разработок, которые в основном состоят из программирования на Ruby, Ruby on Rails и JavaScript.

С TextMate, когда мне нужно было запустить спецификацию или тест, я мог просто нажать + R на тесте или файле спецификации, и открылось бы другое окно, и результаты были бы отображены с примененным форматом «довольно».,Если бы спецификация или тест были слишком длинными, я мог бы просто продолжить работу с базой кода, поскольку тест / спецификация выполнялись в отдельном процессе / окне.После запуска теста я мог щелкнуть результаты непосредственно в соответствующей строке в файле спецификации.

Отличный плагин Tim Pope rails.vim очень близок к эмуляции этого поведения в среде MacVim.Running: Rake, когда текущий буфер является тестом, или спецификация запускает файл, а затем разделяет буфер для отображения результатов.Вы можете перемещаться по результатам и указывать на соответствующую точку в файле.

Проблема с подходом rails.vim заключается в том, что он блокирует окно MacVim во время выполнения теста.Это может быть проблемой с большими приложениями, которые могут иметь множество настроек / разрывов, встроенных в тесты.Кроме того, визуальные красные / зеленые html-результаты, которые отображает TextMate (я полагаю, через --format pretty), сканировать немного проще, чем через разделенное окно.

Этот парень подошел около 18 месяцев назад:http://cassiomarques.wordpress.com/2009/01/09/running-rspec-files-from-vim-showing-the-results-in-firefox/ Сценарий, с которым он работал, немного взломав, но тесты по-прежнему выполнялись в MacVim и закрывали текущее окно.

Любые идеи о том, как полностью воспроизвести поведение TextMate, описаны выше вMacVim?

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 октября 2010

Существует плагин vim-addon-background-cmd , который позволяет вам запускать задачи в фоновом режиме, а не блокировать интерфейс vim.Вы должны создать вызов, чтобы выполнить фоновую команду.См. документы для получения дополнительной информации о том, как это сделать.

0 голосов
/ 23 декабря 2010

Несколько месяцев назад я искал ту же самую вещь.Затем я обнаружил автотест с rspec.Теперь я держу отдельное окно терминала открытым, где отображаются мои последние тесты.Если я изменяю какие-либо относящиеся к делу файлы кода, мои тесты автоматически запускаются для меня (файлы просматриваются, и если они меняют выполняемые тесты).

Если вам нужно такое же поведение типа автотеста в не-рельсовом проекте, вы можете посмотреть на гем watchr.Его функциональность аналогична автотесту, но вы можете использовать его в ЛЮБОМ фреймворке.

...