为什么鼻子测试找不到任何东西?

时间:2012-09-13 12:57:35

标签: python unit-testing

我正在从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

3 个答案:

答案 0 :(得分:15)

我可以在你的回购中看到至少有一些文件是可执行的,所以这至少是问题的一部分。默认情况下,nose不会收集它们:它试图避免运行可能在导入时执行某些破坏性操作的脚本。尝试使用--exe标志,或从测试文件中删除可执行位。

答案 1 :(得分:1)

如果你想让鼻子运行那个包中的所有测试,你需要在上面的目录中。

答案 2 :(得分:1)

在我的情况下,我在测试文件的末尾有以下行:

unittest.main()

从我的所有测试中删除它解决了我的问题。