Связка клавиш в режиме Emacs Matlab для запуска тестов - PullRequest
2 голосов
/ 03 ноября 2011

Я использую Emacs + matlab-mode в качестве среды разработки Matlab.У меня также есть MTEST , установленный вместе с Matlab для запуска моих модульных тестов - теперь я хочу иметь привязку ключа, которая запускает тесты из текущего файла в оболочке matlab, которую я постоянно открывал вокруг(M-x matlab-shell).

То, что у меня есть до сих пор, это:

; Runs the unit tests available in the current buffer
(defun run-matlab-test ()
(interactive)
(matlab-shell-run-command (concat "runtests "
                (car (split-string (buffer-name) "\\.")))))

; Bind "C-c l" to running unit tests in matlab-mode
(defun map-run-matlab-test-keys ()
  (local-set-key (kbd "C-c l") 'run-matlab-test))

(add-hook 'matlab-mode-hook 'map-run-matlab-test-keys)

В функции run-matlab-test мне нужно иметь способ вызова runtestsкоманда с параметром, предоставленным командой (buffer-name), и все это должно происходить в оболочке matlab, о которой я упоминал выше.Есть подсказки?

Редактировать : Мне удалось заставить его работать, позвонив matlab-shell-run-command.Предостережение заключается в том, что он работает только в том случае, если начальная последовательность такова: откройте файл unit-test.m, из этого файла запустите M-x matlab-shell (таким образом, matlab начинается с текущего рабочего каталога в каталоге tests), а затем вы можете использовать приведенный вышесвязывание. * * тысяча двадцать-одна

1 Ответ

0 голосов
/ 18 ноября 2011

Чтобы избежать оговорки, указанной выше, вы, вероятно, могли бы выдать cd to matlab перед вызовом runtest, выполнив что-то вроде следующего (непроверенного):

(defun run-matlab-test ()
  (interactive)
  (matlab-shell-run-command (concat "cd " (file-name-directory (buffer-file-name))))
  (matlab-shell-run-command (concat "runtests "
                            (car (split-string (buffer-name) "\\.")))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...