nose unittest 发现在 python 3.8 上损坏

nose unittest discovery broken on python 3.8

今天从 python 3.7 升级到 3.8。 nose 中的单元测试发现不再有效。

简化项目布局

x:\proj\src\__init__.py
x:\proj\src\first.py
x:\proj\tests\__init.py
x:\proj\tests\testfirst.py

从项目根目录 x:\proj、运行:

nosetests -v
-----------------------------------------------
Ran 0 tests in 0.016s

OK

只能通过指定运行个单元测试,例如:

nosetests tests.testfirst
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

平台

Nose 现在要求您在有多个包时使用 --traverse-namespace 选项。您可以将其添加到 nosetests 调用中,或者为了节省您自己的输入,将其添加到 setup.cfg,例如:

[nosetests]
traverse-namespace=1