導包時出現如下錯誤
from test_project.test_case.test_battal import TestBattal
ModuleNotFoundError: No module named 'test_project'
說明python執行時找不到這個封包件,是以無法調用。那麼我們需要先知道python是如何搜尋的。
當一個名為 ***的子產品被導入的時候,解釋器首先尋找具有該名稱的内置子產品。如果沒有找到,然後解釋器從 sys.path 變量給出的目錄清單裡尋找名為 ***.py 的檔案
可以使用[sys.path]列印出python找包的路徑
import sys
print(sys.path)
解決辦法一:
将檔案的目錄臨時追加到搜尋目錄中,因為目錄寫死,隻适合臨時解決問題
#注意導包代碼需要放在添加路徑的代碼後,否則依然無法找到包
import sys
import unittest
import os
sys.path.append(r'F:/教程/全棧測試開發課程/第26課時')
# dir_path1 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# sys.path.append(dir_path1)
# print(dir_path1)
from test_project.test_case.test_battal import TestBattal
if __name__ == '__main__':
# 根據給定的測試類,擷取其中所有以test開頭的測試方法,并傳回一個測試套件
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestBattal)
# 将多個測試類加載到測試套件中
suite = unittest.TestSuite([suite1])
# 設定verbosity = 2,可以列印出更詳細的執行資訊
unittest.TextTestRunner(verbosity=2).run(suite)
#注意導包代碼需要放在添加路徑的代碼後,否則依然無法找到包
dir_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(dir_path)
# write to apckage path
C:\Users\Administrator\Desktop\test_project
C:\Users\Administrator\Desktop