在Emacs中运行py.test

9 投票
1 回答
1415 浏览
提问于 2025-04-15 21:35

我想要的是,当我在编辑的文件名以 test_ 开头时,按下 C-c C-c 能够运行 py.test,并把输出显示在另一个窗口里;如果文件名不是以 test_ 开头,则正常运行 py-execute-buffer。请问我该怎么做?我现在使用的是 emacs 23.1.1,并且已经安装了 python-mode,可以在命令行中使用 py.test。

1 个回答

8

这个东西并没有经过特别严格的测试,只是一个粗略的想法。

(defun py-do-it ()
  (interactive)
  (if (string-match
       (rx bos "test_")
       (file-name-nondirectory (buffer-file-name)))
      (compile "py.test")
    (py-execute-buffer)))

(add-hook 'python-mode-hook
          (lambda ()
            (local-set-key
             (kbd "F5")                 ;or whatever
             'py-do-it)))

撰写回答