我为这个愚蠢的问题感到抱歉,但过去两个小时我一直在撞墙。
我想使用相对导入,我的项目结构如下所示:
auto_testing
+ tests
+ __init__.py
+ my_module.py
+ src
+ __init__.py
+ my_module.py
+ __init__.py
tests/my_module.py
的内容是:
import unittest
from src.my_module import MyClass
class TestMyClass(unittest.TestCase):
def setUp(self):
self.inst = MyClass()
def test_division_by_zero(self):
self.assertRaises(ZeroDivisionError, self.inst.divide, 1, 0)
def run_tests():
unittest.main()
if __name__ == '__main__':
run_tests()
然后我在终端
中运行命令cd auto_testing
python3 -m tests.my_module
并获取Error while finding spec for 'tests.my_module.py' (<class 'AttributeError'>: 'module' object has no attribute '__path__')
。
当我跑步时
cd auto_testing
python3
import tests.my_module
tests.my_module.run_tests()
我得到Ran 0 tests
(为什么没有找到任何测试应该是另一个问题,但关键是,MyClass
已正确导入并且unittest.main()
似乎已被调用;请使用{{进行检查1}})。
我应该去睡觉吗?我错过了很简单的事情吗?
答案 0 :(得分:0)
我应该去睡觉。
我需要运行的命令是:
cd auto_testing
python3 -m unittest tests/my_module.py
这也是我的测试。