在本地运行测试
编辑在本地运行测试
编辑要在本地运行测试,您可以使用在使用 Jenkins 运行整个测试套件时也使用的 Docker 镜像。首先运行完整的测试套件会进行一些代码风格检查,然后使用不同版本的 Python 和不同的 Web 框架运行实际测试。有关测试矩阵和支持版本的完整概述,请查看 Jenkins 配置。
提交前检查
编辑我们在每次提交时都会运行我们的 Git 钩子,以自动指出代码中的问题。这些问题也会在 GitHub Actions 中检测到。请按照 https://pre-commit.git-scm.cn/#install 中说明的安装步骤进行操作。
代码风格检查器
编辑我们运行两个代码风格检查器 isort
和 flake8
。您可以通过运行以下命令在本地触发每个检查器
$ pre-commit run -a isort
$ pre-commit run -a flake8
代码格式化器
编辑我们使用 black
测试代码是否已格式化。您可以通过运行以下命令触发此检查
$ pre-commit run -a black
测试文档
编辑我们测试文档是否可以无错误生成。您可以通过运行以下命令触发此检查
$ ./tests/scripts/docker/docs.sh
运行测试
编辑我们在 Python 版本和 Web 框架的不同组合上运行测试套件。要为特定组合在本地触发测试套件,您可以运行
$ ./tests/scripts/docker/run_tests.sh python-version framework-version <pip-cache-dir>
python-version
必须为 python-version
格式,例如 python-3.6
或 pypy-2
。framework
必须为 framework-version
格式,例如 django-1.10
或 flask-0.12
。
您还可以通过安装相关的 requirements 文件 并在项目根目录中运行 py.test
来在 Docker 之外运行单元测试。
集成测试
编辑查看 https://github.com/elastic/apm-integration-testing 以获取设置完整端到端测试环境的资源。例如,要使用 opbeans Django 应用程序、Elastic Stack 的 7.3 版本以及您本地签出的 apm-python-agent 启动环境,您可以执行以下操作
$ ./scripts/compose.py start 7.3 \ --with-agent-python-django --with-opbeans-python \ --opbeans-python-agent-local-repo=~/elastic/apm-agent-python