在使用python寫接口測試腳本時,想要引入logging模塊來在控制台輸出當前執行進度日志,但是遇到了奇葩問題,困擾了一整個下午:
代碼如下:
__author__ = 'test'
#!/usr/bin/python
# -*- coding:utf-8 -*-
import requests
import unittest
from urllib import parse
import HTMLTestRunner
from datetime import datetime
import random
from logger import Log
class LoginRegisterTest(unittest.TestCase):
# 測試登陸注冊接口
"""
此處省略接口測試用例代碼
"""
def suite():
"""
測試套件
:return: loginTestCases
"""
login_test_cases = unittest.makeSuite(LoginRegisterTest, 'test')
return login_test_cases
if __name__ == "__main__":
logging = Log().get_instance('tw')
logging.debug('13356')
with open("F:/ScriptReport/report_" + datetime.now().strftime('%Y%m%d-%H-%M') + ".html", 'wb') as report:
runner = HTMLTestRunner.HTMLTestRunner(stream=report, title='測試報告', description='詳情')
runner.run(suite())
debug以上代碼,代碼不會走紅色代碼部分,但是把紅色代碼部分單獨拿出來,或者直接運行(if __name__ == "__main__":)的部分都可以執行成功
單獨拿出來的代碼如下234.py:
from logger import Log
if __name__ == "__main__":
logging = Log().get_instance('tw')
logging.debug('13356')
234.py運行的結果如下

那么為什么相同的代碼執行結果確不同呢?后來清理了pycharm緩存,問題得以解決。清理緩存步驟如下
1、file下選擇Invalidate Caches Restart...

2、選擇清理並重新啟動,等待一會重新運行問題得以解決
