生成日志 Python

9 浏览
0 Comments

生成日志 Python

我刚开始学习编程,我不明白为什么在我的测试用例完成后无法生成日志。\n这是生成日志的代码:\n

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

\n这是我调用这个方法的代码:\n

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()

\n但是测试用例完成后没有生成任何日志。\n提前感谢您的帮助!

0
0 Comments

问题的出现原因:

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

问题的解决方法:

可以通过在命令行中使用pytest -p no:logging ...命令来关闭日志记录功能,这样就不会捕获任何日志,并且会应用自己的日志配置。

另外,pytest还有一个很好的功能,即实时日志记录。启用此功能后,它将捕获日志并将其写入终端或文件。可以通过在pytest.inipyproject.toml中进行配置来替换LogGen。在测试中,只需使用根记录器,无需在代码中进行任何配置。

如果在使用pytest -p no:logging命令时,所有的测试用例都开始运行,可以尝试添加其他参数,例如pytest -p no:logging -v -s testCases/test1learning.py

如果在命令行中执行命令时出现错误,请检查错误信息,可能是由于命令被错误地粘贴到代码中而导致的。应该在终端中执行命令,而不是在代码中粘贴。

如果仍然遇到问题,请检查错误信息,看看是否将命令粘贴到了customeLogger.py代码中。在修复代码之前,该代码无法运行。

以上是关于"Generate Log Python"问题的原因和解决方法的总结。

0