我正在使用GitHub操作构建持续集成工作流程。该工作流程将用于运行单元测试和测试构建状态。开发python软件包的许多不同人员将使用该工作流程,因此我正在尝试使其尽可能通用和模块化。我的目标是分离运行单元测试和测试这些软件包的构建状态的任务,这使我想到一个问题:命令python setup.py test
和pytest {package}
之间有什么区别?
特别是
使用命令pytest {package}
运行单元测试是否会自动构建您的软件包,或者如果不构建软件包就无法运行单元测试吗?
[我知道setup.py是setuptools的构建脚本,并且我已经阅读了python setup.py test
命令的作用,并说它将执行:在就地构建之后运行单元测试。那么,该命令默认是否使用pytest?
[我还在setuptools docs中看到了build命令,所以为了回答我自己的问题,我会只执行pytest {package}
来运行单元测试,python setup.py build
来测试软件包的构建状态。
正确吗?
非常感谢。
没有回答差异,但是...
警告:不推荐使用
test
,并将在以后的版本中将其删除。鼓励寻找独立于测试运行程序的通用测试入口点的用户使用tox。
-setuptools documentation on the command "test
- Build package and run a unittest suite"
是否使用pytest {package}命令运行单元测试自动生成您的软件包?
不,不是,您不需要它-您不需要软件包来运行测试。
如果不构建软件包就无法运行单元测试吗?
可能。
我知道setup.py是setuptools的构建脚本,我有读取命令
test
的操作,它说它将:就地构建后运行单元测试。那么该命令是否使用pytest那么默认情况下呢?
它会运行已配置的测试,因此这取决于您的设置。如前所述,不建议运行python setup.py test
,因此您通常不必担心-在CI环境中直接使用python setup.py test
。请注意,尽管有些Linux发行版仍默认在部署时运行此程序,所以如果您要分发软件包,则可能仍必须进行测试。
要通过pytest
运行pytest
,您可能需要在setup
中执行以下操作:
setup.py