“ python setup.py test”与“ pytest {package}”之间有什么区别?

问题描述 投票:0回答:2

我正在使用GitHub操作构建持续集成工作流程。该工作流程将用于运行单元测试和测试构建状态。开发python软件包的许多不同人员将使用该工作流程,因此我正在尝试使其尽可能通用和模块化。我的目标是分离运行单元测试和测试这些软件包的构建状态的任务,这使我想到一个问题:命令python setup.py testpytest {package}之间有什么区别?

特别是

  1. 使用命令pytest {package}运行单元测试是否会自动构建您的软件包,或者如果不构建软件包就无法运行单元测试吗?

  2. [我知道setup.py是setuptools的构建脚本,并且我已经阅读了python setup.py test命令的作用,并说它将执行:在就地构建之后运行单元测试。那么,该命令默认是否使用pytest?

[我还在setuptools docs中看到了build命令,所以为了回答我自己的问题,我会只执行pytest {package}来运行单元测试,python setup.py build来测试软件包的构建状态。

正确吗?

非常感谢。

python pytest setuptools github-actions
2个回答
0
投票

没有回答差异,但是...

警告:不推荐使用test,并将在以后的版本中将其删除。鼓励寻找独立于测试运行程序的通用测试入口点的用户使用tox

-setuptools documentation on the command "test - Build package and run a unittest suite"


0
投票

是否使用pytest {package}命令运行单元测试自动生成您的软件包?

不,不是,您不需要它-您不需要软件包来运行测试。

如果不构建软件包就无法运行单元测试吗?

可能。

我知道setup.py是setuptools的构建脚本,我有读取命令test的操作,它说它将:就地构建后运行单元测试。那么该命令是否使用pytest那么默认情况下呢?

它会运行已配置的测试,因此这取决于您的设置。如前所述,不建议运行python setup.py test,因此您通常不必担心-在CI环境中直接使用python setup.py test。请注意,尽管有些Linux发行版仍默认在部署时运行此程序,所以如果您要分发软件包,则可能仍必须进行测试。

要通过pytest运行pytest,您可能需要在setup中执行以下操作:

setup.py
© www.soinside.com 2019 - 2024. All rights reserved.