使用和编写测试 - manateelazycat/lsp-bridge GitHub Wiki
运行测试
只需要在项目目录下运行 python -m test.test 即可,期间产生的文件都在临时目录下,不会污染你的 Emacs 环境。日志输出有两部分,Emacs 的日志在标准输出中,Python 的日志在项目目录下的 test.log 文件中。
如果你是在 GitHub Actions 中运行的测试,那么 test.log 可以在 Summary 下的 Artifacts 中下载。
测试原理
python -m test.test会运行test/test.py中的test_entrypoint函数,该函数会用 batch 模式启动一个干净的 Emacs,然后安装本项目的相关依赖,然后调用test/lsp-bridge-test.el中的lsp-bridge-start-test函数。lsp-bridge-start-test会启动 lsp-bridge 的 Python 进程并建立通信,然后调用test/test.py中的start_test函数。start_test会启动test目录下的所有测试,通常的测试方法是往临时文件目录下写入代码,然后模拟用户移动光标和输入操作,最后验证操作后的 buffer 内容或者 Python 向 Emacs 发送的消息是否正确。
编写语言测试
- 在
test/test_completion.py中加入相应测试并在本地通过。 - 可能需要在
.github/workflows/test.yml中增加相关 language server 依赖。 - 提交 PR 并确保能通过 GitHub Action 中的测试(补全相关可以仅测试 Linux 平台)。