我正在从python的unittest框架切换到nosetests,尝试重用我的unittest.TestCase
在cd
进入我的测试包之后,我开始进行鼻子测试as described on their homepage:
./test/$ nosetests
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
为什么我需要指定每个模块让鼻子发现它的测试,如下例所示?
./test/$ nosetests test_all.py
.......
----------------------------------------------------------------------
Ran 7 tests in 0.002s
OK
同时运行测试上面的一个文件夹不会改变任何内容。
./tests/$ cd ..
./$ nosetests
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
答案 0 :(得分:15)
我可以在你的回购中看到至少有一些文件是可执行的,所以这至少是问题的一部分。默认情况下,nose不会收集它们:它试图避免运行可能在导入时执行某些破坏性操作的脚本。尝试使用--exe标志,或从测试文件中删除可执行位。
答案 1 :(得分:1)
如果你想让鼻子运行那个包中的所有测试,你需要在上面的目录中。
答案 2 :(得分:1)
在我的情况下,我在测试文件的末尾有以下行:
unittest.main()
从我的所有测试中删除它解决了我的问题。