我使用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目录中的当前工作目录开头)然后你可以使用上面的绑定。
答案 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) "\\.")))))