Skip to main content
 首页 » 编程设计

python之将 nosetests 与 distutils2 一起使用

2025年05月04日10bluestorm

我正在尝试使用 nosetests 作为我的构建/发布链的一部分,它基于 distutils2(使用 setup.cfg文件而不是“遗留”setup.py 脚本)。

不幸的是,当我发出:

pysetup run test 

我得到:

running test 
running build 
running build_py 
 
---------------------------------------------------------------------- 
Ran 0 tests in 0.000s 
 
OK 

...然而,如果我从同一位置发出 nosetests,我可以看到所有正在执行的测试。我的目录结构如下:

|-- docs 
|-- my_package 
|   |-- __init__.py 
|   |-- foobar.py 
|   `-- tests 
|       `-- foobar_test.py 
|-- README.md 
|-- requirements.txt 
`-- setup.cfg 

我的 setup.cfg 文件的相关部分包含:

[test] 
runner = nosetests 

我做错了什么?官方文档在这一点上并不完美......

请您参考如下方法:

你试过吗:

pysetup run test --runner=nosetests 

我有同样的问题,在我看来 distutils2 不太关心我在 [test] 部分输入的内容(我可以写任何东西,它永远不会引发错误)。

无论如何它都不会运行,因为 --runner 和 --suite 选项都需要一个模块。

我能够运行测试的唯一方法是使用“类似 run_tests.py”的模块,我将其放入包中,然后调用:

pysetup run test --suite=package_were_tests_runner_is.run_tests