2015-02-09 78 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 

這也運行我的測試。