当使用Emacs在elisp中运行测试时,如何评估代码?

当使用Emacs在elisp中运行测试时,如何评估代码?,emacs,elisp,Emacs,Elisp,我正在写一些小拼图来学习Emacs Lisp 但是,我当前的工作流程太单调乏味了: 更改代码 eval区域或eval缓冲区code 改变测试 eval区域或eval缓冲区测试代码 M-x ert,然后按enter键运行测试 如何设置Emacs或测试,这样我就可以“运行测试”,Emacs将为我评估所有代码?您可能不应该在Emacs会话中运行测试。而是在新的Emacs会话中运行测试: $ emacs -Q -b -l my-source-file.el -l my-test-file.el -f e

我正在写一些小拼图来学习Emacs Lisp

但是,我当前的工作流程太单调乏味了:

  • 更改代码
  • eval区域
    eval缓冲区
    code
  • 改变测试
  • eval区域
    eval缓冲区
    测试代码
  • M-x ert
    ,然后按enter键运行测试

  • 如何设置Emacs或测试,这样我就可以“运行测试”,Emacs将为我评估所有代码?

    您可能不应该在Emacs会话中运行测试。而是在新的Emacs会话中运行测试:

    $ emacs -Q -b -l my-source-file.el -l my-test-file.el -f ert-run-tests-batch-and-exit
    

    您可以从
    M-x compile

    运行此程序,谢谢,这正是我所需要的。但是我必须用
    -batch
    替换
    -b
    ,你认为测试本身应该需要测试中的代码吗?这似乎是我用其他语言做事的方式。@jplindstrom我想是的,我通常有一个相应的
    require
    。它可以让您干净地对测试代码进行字节编译,从而帮助您发现错误(例如,拼写错误的函数或变量等),尤其是(无耻的插件:)