2011-11-03 106 views
2

我使用Emacs + matlab-mode作爲我的Matlab開發環境。我也有MTEST與Matlab一起安裝來運行我的單元測試 - 我現在想要做的是有一個鍵綁定運行來自當前文件中的測試,我經常打開(M-x matlab-shell)。運行測試的Emacs matlab模式鍵綁定

我直到現在是:

; 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功能有通話由(buffer-name)命令提供的參數runtests命令的方式而這一切應該發生在我上面提到的matlab shell中。任何提示?

編輯:我設法通過呼籲matlab-shell-run-command得到它的工作。這裏需要注意的是,只有在啓動順序爲:打開unit-test.m文件,從該文件運行M-x matlab-shell(這樣matlab以tests目錄中的當前工作目錄開始),然後可以使用上面的綁定。

回答

0

爲了避免上述的警告,你可能會發出一個cd到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) "\\.")))))