用于运行测试的Emacs matlab模式键绑定

时间:2011-11-03 15:31:35

标签: unit-testing matlab emacs

我使用Emacs + matlab-mode作为我的Matlab开发环境。我还和Matlab一起安装了MTEST来运行我的单元测试 - 我现在要做的是拥有一个键绑定来运行来自matlab-shell中当前文件的测试我经常打开({ {1}})。

到目前为止我所拥有的是:

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命令,所有这些都应该在matlab中发生我上面提到过的shell。任何提示?

修改:我设法通过调用(buffer-name)让它工作。这里需要注意的是,只有在起始序列为:打开matlab-shell-run-command文件时,才能运行unit-test.m文件,运行M-x matlab-shell(这样matlab以test目录中的当前工作目录开头)然后你可以使用上面的绑定。

1 个答案:

答案 0 :(得分:0)

为了避免上面的警告,你可以在调用runtest之前向matlab发出一张cd,做类似下面的事情(未经测试):

(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) "\\.")))))