14

我正在从 python 的 unittest 框架切换到nosetests,试图重用我unittest.TestCase的 s

cd进入我的测试包后,我按照他们主页上的描述开始了鼻子测试:

./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
4

3 回答 3

16

我可以在您的存储库中看到至少有一些文件是可执行的,所以这至少是问题的一部分。默认情况下,nose 不会收集这些:它试图避免运行可能对导入造成破坏性的脚本。尝试 --exe 标志,或从测试文件中删除可执行位。

于 2012-09-19T15:06:27.257 回答
1

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

于 2012-09-13T13:06:41.127 回答
1

就我而言,我在测试文件的末尾有以下行:

unittest.main()

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

于 2015-04-27T18:13:08.793 回答