天天看點

issue5:unittest if __name__ == ‘__main__‘: 下的代碼未執行

問題:運作時候發現main方法并沒有執行,之執行了test_baidu

import unittest
from selenium import webdriver
from .config import XTest

browser_list=["Chrome","Firefox"]
def main(path,browser):
    print("222")
    if browser not in browser_list:
        raise NameError("不支援{browser}浏覽器",1)
    elif browser =="Chrome":
        XTest.driver=webdriver.Chrome()
    elif browser =="Firefox":
        XTest.driver=webdriver.Firefox()

    suit=unittest.defaultTestLoader.discover(start_dir=path)
    runner=unittest.TextTestRunner()
    runner.run(suit)

           

原因:

之前所執行代碼對應的方式是Run 'Unittests in xxx.py',PyCharm預設執行Unittests類的單元測試,忽略了if __name__ == '__main__':的執行,也就沒有執行整個xxx.py檔案

方案:

在PyCharm頂部的工具欄上,點選 Run-->Run...在彈出的Run選擇框中,點選與檔案xx.py同名的選項

(Run xx.py相當于執行整個xx.py檔案,也就包含if __name__ == '__main__':其下的代碼了)

摘自:[PyCharm] if __name__ == '__main__': 其下的代碼未執行_解決方案 - 簡書