2017-08-11 6 views
2

Ich befolge python unittest, um einige Tests durchzuführen und die discover-Funktion zu nutzen, um Tests in eine Suite zu packen. Jedoch wenn ich versuche, den Test mit Unittest zu laufen, bekomme ich diesen Fehler:python - unittest - ImportError: Startverzeichnis ist nicht importierbar

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' 

Dies ist, wie die run_tests.py wie folgt aussieht:

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) 

Antwort

1

Es gibt eine similar question with a helpful answer here.

Dies kann jedoch passieren, wenn Sie eine IDE wie PyCharm in Linux verwenden und Dateien in einem Verzeichnis soft-linked öffnen. Es scheint, dass der Editor, der die Tests ausführt, über die zwei Pfade zum selben Modul verwirrt ist und sagt, dass es einen nicht gibt. Alles an einem Ort zu platzieren, ohne irgendwelche Softlinks, hat das für mich behoben.