【发布时间】:2017-06-22 19:51:31
【问题描述】:
我想尽办法让我的所有单元测试都在 Python 中运行。我已经搜索了大约 30 个不同的帖子和单元测试文档,但仍然无法弄清楚。
首先我有两个测试类,我可以分别运行它们并且所有测试都通过:
文件:unittest.subfolder1.TestObject1.py
class TestObject1(unittest.TestCase):
def test_case1(self):
...some code...
...some assertions...
if __name__ == '__main__':
unittest.main()
文件:unittest.subfolder2.TestObject2.py
class TestObject2(unittest.TestCase):
def test_case1(self):
...some code...
...some assertions...
if __name__ == '__main__':
unittest.main()
从 'unittest' 上方的顶级目录开始,我试图通过 unittest.discover 查找并运行我的所有测试:
import unittest
loader = unittest.TestLoader()
suite = loader.discover('unittest')
unittest.TextTestRunner().run(suite)
当我这样做时,我收到错误 `ModuleNotFoundError: No module named 'subfolder1.TestObject1'
我做错了什么?
【问题讨论】:
-
对于第二个单元测试,是直接从那个文件复制过来的吗?如果是,请检查类名“TestObject1”是否应该是“TestObject2”?
-
这是我修正的一个错字。我确实想出了一个迂回的解决方案并将其发布为答案。
标签: python unit-testing subdirectory