2017-08-11 18 views
2

我跟随python unittest进行一些测试并使用discover函数将测试打包到一个套件。 然而,当我尝试运行单元测试与测试,我得到这个错误:python - unittest - ImportError:启动目录不可导入

Traceback (most recent call last): 
    File "D:/Project/run_tests.py", line 12, in <module> 
    suite2 = unittest.defaultTestLoader.discover(dir2, pattern='test*.py') 
    File "C:\Python\Python36-32\lib\unittest\loader.py", line 338, in discover 
    raise ImportError('Start directory is not importable: %r' % start_dir) 
ImportError: Start directory is not importable: 'D:\\Project\\dir2' 

这是run_tests.py的样子:

import unittest 

if __name__ == "__main__": 

    dir1 = "./test1" 
    suite1 = unittest.defaultTestLoader.discover(dir1, pattern='test*.py') 
    runner1 = unittest.TextTestRunner() 
    runner1.run(suite1) 


    dir2 = "./tes2" 
    suite2 = unittest.defaultTestLoader.discover(dir2, pattern='test*.py') 
    runner2 = unittest.TextTestRunner() 
    runner2.run(suite2) 

回答

1

有一个similar question with a helpful answer here

但是,如果您在Linux中使用PyCharm等IDE并在soft-linked目录中打开文件,则可能发生这种情况。看起来正在运行测试的编辑器会对同一模块的两条路径感到困惑,并说一个不存在。把它放在一个没有任何软链接的位置为我解决了这个问题。