blo*_*ley 37 python unit-testing nose unittest2
Python的unittest discover没有找到我的测试!
我一直在使用鼻子来发现我的单元测试,它工作正常.从我的项目的顶层,如果我跑,nosetests
我得到:
Ran 31 tests in 0.390s
Run Code Online (Sandbox Code Playgroud)
现在Python 2.7 unittest 已经发现,我已经尝试过使用了
python -m unittest discover
Run Code Online (Sandbox Code Playgroud)
但我明白了
Ran 0 tests in 0.000s
Run Code Online (Sandbox Code Playgroud)
我的目录结构是:
myproj/
reporter/
__init__.py
report.py
[other app modules]
tests/
__init__.py
test-report.py
[other test modules]
Run Code Online (Sandbox Code Playgroud)
你有什么想法为什么unittest的发现算法找不到测试?
我在Windows 7上使用Python 2.7.1和nose 1.0.0.
nco*_*lan 47
这种行为是故意的,但文档可以使这更清楚.如果你看一下测试发现部分的第一段,它会说:
要使项目的测试与测试发现兼容,它们必须都可以从项目的顶级目录导入(换句话说,它们都必须在Python包中).
这样做的必然结果是文件名也必须是有效的Python模块名称.test-report.py
未通过该测试,因为test-report
它不是合法的Python标识符.
一个文档错误表明在-p
模式选项的文档中明确提到这可能是一个很好的前进方法.
Max*_*ysh 17
我遇到这个问题是因为项目中的某些目录丢失了__init__.py
。我以为我在 Python 3.7 中不需要它们。
只需添加__init__.py
到每个目录,python3 -m unittest
就会自动找到测试。
归档时间: |
|
查看次数: |
15876 次 |
最近记录: |