2015-02-09 82 views
0

对于愚蠢的问题,我很遗憾,但是我在过去的两个小时里一直在撞墙。嵌套软件包的自动测试

我想用相对进口和我的项目结构是这样的:

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()好像是叫;与print选中)。

我应该去睡觉吗我错过了很简单的东西?

回答

0

我应该去睡觉。

我需要运行的命令是:

cd auto_testing 
python3 -m unittest tests/my_module.py 

这也运行我的测试。