生成日志Python



我是编码新手,我不明白为什么在测试用例完成后不能生成日志。

这是生成日志的代码


class LogGen:
@staticmethod
def loggen():
logging.basicConfig(filename=".\Logs\automation.log",
format='%(asctime)s: %(levelname)s: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logger = logging.getLogger()
logger.setLevel(logging.INFO)
return logger

这是我称之为这种方法的代码:

from selenium import webdriver
from pageObjects.storetest import store_test
from utilities.readProperties import ReadConfig
from selenium.webdriver.common.keys import Keys
import time
from utilities.customeLogger import LogGen

class Test_001_learning:
baseURL = ReadConfig.getApplicationURL()
email = ReadConfig.getUseremail()
password = ReadConfig.getPassword()
logger = LogGen.loggen()
PURCHASEPRICE = "100"
DOWNPAYMENT = "10"
HOMEINSURANCE = "10"
PROPERTYTAXES = "10"
HOADUES = "10"
def test_store(self, setup):
self.logger.info("********* Test_001_Learning ********")
self.logger.info("********* LOggin test  ********")
self.driver = setup
self.driver.get(self.baseURL)
self.driver.get(self.baseURL)
self.lp = store_test(self.driver)
self.lp.setemail(self.email)
self.lp.setpassword(self.password)
self.lp.button1()
title = self.driver.title
if title == "Dashboard / nopCommerce administration":
assert True
self.logger.info("********* Test Pass ********")
else:
self.driver.save_screenshot(".\Screenshots\" + "test_calculator2.png")
assert False
self.lp.button2()
self.driver.close()

但是在测试用例完成之后,不会生成任何日志。

提前感谢!

默认情况下,pytest用自己的日志记录配置覆盖任何自定义日志记录配置,以便捕获测试运行中发出的任何日志;这对于测试应用程序是否正确地发出日志非常有用。您可以通过关闭logging插件来禁用此功能:

$ pytest -p no:logging ...

现在不会捕获任何日志,而是应用您自己的日志配置。

备选方案:实时日志

然而,pytest也具有实时日志记录的整洁特性;启用后,它将捕获日志将它们写入终端或文件,或两者兼有。因此,您可以将LogGen替换为在pytest.inipyproject.toml中完成的配置。pyproject.toml:示例

[tool.pytest.ini_options]
log_file = "Logs/automation.log"
log_file_level = "INFO"
log_file_format = "%(asctime)s: %(levelname)s: %(message)s"
log_file_date_format = "%m/%d/%Y %I:%M:%S %p"

在测试中,只需使用根记录器;无需在代码中配置任何内容:

class Test_001_learning:
def test_store(self):
self.logger = logging.getLogger()
self.logger.info("********* Test_001_Learning ********")
...

无耻的自我推销:查看我的另一个答案,了解更多配置示例。

最新更新