阅读本文大概需要 13 分钟。
这篇博文将与你分享如何在 Python 项目中搭建起 GitHub Actions 工作流,以确保你写出的代码既优雅,又符合所有最佳实践,且已经过完备测试。
作者 | Wojciech Krzywiec
译者 | 香槟超新星,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
转载编辑 | 进击的coder
以下为译文:
如何确保我的代码是高质量的? 如何确保我的代码风格与官方指南PEP 8一致? 以及如何检查代码的测试是否完备?
-
如何集成 CodeFactor——一个可以在你的代码中发现潜在bug的工具;
-
如何设置 wemake-python-styleguide GitHub Actions 工作流(用以检查你的代码是否符合 PEP 8);
-
如何运行单元测试并通过 Codecov 报告覆盖范围。
在接下来的步骤中,我默认你已经在 GitHub 上有一个 Python 项目了。如果你没有的话,就请先创建一个吧。
-
actions / checkout @ v1——必须让 GitHub Actions 工作流知道它可以使用库中的代码
-
使用 actions/setup-python@master 的 Set up Python 配置好一个 Python 版本,在本例中为使用的是 python-version: 3.8。
-
Run unit tests 将运行位于项目中的所有单元测试。为此,我使用的是 pytest,首先需要安装 pip install pytest,以便可以运行下一个命令 pytest。如果这一步上有任何一个测试失败,则下一个测试将不会运行。
-
Wemake Python Styleguide 的这一个步骤是我们最感兴趣的。它使用wemake-services/wemake-python-styleguide@0.13.4 操作,这是工作流的基本组成单位。你可以在GitHub Marketplace上找到它们
(https://github.com/marketplace?type=actions)
就像上述提到的一样(https://github.com/marketplace/actions/wemake-python-styleguide)。将此代码配置为(with 语句)以使用github-pr-review reporter,就可以在 code review 中启用内联注释了。在官方网站上可以找到更多受支持的 reporter 选项。最后,此工作流需要传递你的 GIHUB_TOKEN,这就是添加 env 语句的原因。
为了测试它的运行,你需要创建一个新的 branch,提交一些更改并将其推送到 GitHub。然后创建一个 pull request,就能触发此工作流了。要检查它,请转到项目中的“Actions”选项,如果一切顺利则应如下图所示:
-
uses: actions/checkout@v1——这个步骤,跟上次一样,也只是为了告诉 GitHub Actions 我们要使用当前库里的文件
-
uses: actions/setup-python@master——这个步骤之前也提到过,这里我们设置的 Python 版本是 3.8
-
然后是一个新步骤,负责生成覆盖率报告(Generate coverage report);这包含一系列脚本,涵盖了安装 pytests(pip install pytest),pytest-cov(pip install pytest-cov)和运行实际测试(pytest-cov =./-cov-report = xml),
-
最终,生成的测试覆盖率报告可以上传到 Codecov(Upload coverage to Codecov)。在这里我们使用 uses: codecov / codecov-action @ v1(https://github.com/marketplace/actions/codecov)。在其中,我们提供 3 个参数:token: ${{ secrets.CODECOV_TOKEN }},取值自我们放置在 GitHub Secrets 保管库的文件,(之前的步骤生成的)测试覆盖率报告的位置是file:./coverage.xml,而 flags:unittests 是对我们的单元测试进行分组的标志。
要进行测试,你需要将一些提交 push 到 master branch。这可以直接在你的本地库中完成,也可以通过合并一个 pull request 完成。如果一切顺利,那页面应该是像这样的:
● 80%的人都不知道,全球Python库下载前10名
● 我珍藏的一些好的Python代码,技巧|上篇
● 爬取300本Python书籍,用Python告诉你哪家强?
点击阅读原文,原创400篇干货文章
本篇文章来源于: 菜鸟学Python
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python判断一个元素是否为字符串12/07
- ♥ 什么是pythonbg09/18
- ♥ 新手必看! Python类、模块、包的概念和区别11/19
- ♥ python中最短路径的算法有哪些12/24
- ♥ 输入在python中是什么意思09/09
- ♥ sublime 无法运行 python10/07
内容反馈