无法 运行 Emacs ERT 交互测试

Cannot run Emacs ERT tests interactively

我正在尝试 运行 交互式 Emacs ert 测试,但它没有 运行。 我正在按照 Emacs ERT guide 到 运行 这个示例测试:

(require 'ert)

(ert-deftest pp-test-quote ()
  "Tests the rendering of `quote' symbols in `pp-to-string'."
  (should (equal (pp-to-string '(quote quote)) "'quote"))
  (should (equal (pp-to-string '((quote a) (quote b))) "('a 'b)\n"))
  (should (equal (pp-to-string '('a 'b)) "('a 'b)\n")))

使用 M-x ert RET t RET 从缓冲区执行此测试将输出:

Selector: t
Passed:  0
Failed:  0
Skipped: 0
Total:   0/0

Started at:   2016-03-16 21:15:10+0100
Finished.
Finished at:  2016-03-16 21:15:10+0100

但如果从控制台执行(批处理模式),它会起作用:

$ emacs -batch -l ert -l test.el -f ert-run-tests-batch-and-exit
Running 1 tests (2016-03-16 21:35:26+0100)
   passed  1/1  pp-test-quote

Ran 1 tests, 1 results as expected (2016-03-16 21:35:26+0100)

我正在使用 emacs 24.5。

要运行一个测试用例,您必须首先通过加载文件或评估缓冲区来定义它。 ert 命令不会自动执行此操作。

当然,您可以轻松定义自己的函数来评估当前缓冲区和 运行s ert.