Skip to content

使用和编写测试

zerol edited this page May 25, 2022 · 1 revision

运行测试

只需要在项目目录下运行 python -m test.test 即可,期间产生的文件都在临时目录下,不会污染你的 Emacs 环境。日志输出有两部分,Emacs 的日志在标准输出中,Python 的日志在项目目录下的 test.log 文件中。

如果你是在 GitHub Actions 中运行的测试,那么 test.log 可以在 Summary 下的 Artifacts 中下载。

测试原理

  1. python -m test.test 会运行 test/test.py 中的 test_entrypoint 函数,该函数会用 batch 模式启动一个干净的 Emacs,然后安装本项目的相关依赖,然后调用 test/lsp-bridge-test.el 中的 lsp-bridge-start-test 函数。
  2. lsp-bridge-start-test 会启动 lsp-bridge 的 Python 进程并建立通信,然后调用 test/test.py 中的 start_test 函数。
  3. start_test 会启动 test 目录下的所有测试,通常的测试方法是往临时文件目录下写入代码,然后模拟用户移动光标和输入操作,最后验证操作后的 buffer 内容或者 Python 向 Emacs 发送的消息是否正确。

编写语言测试

  1. test/test_completion.py 中加入相应测试并在本地通过。
  2. 可能需要在 .github/workflows/test.yml 中增加相关 language server 依赖。
  3. 提交 PR 并确保能通过 GitHub Action 中的测试(补全相关可以仅测试 Linux 平台)。