• 记:pytest在pycharm中会运行多次,命令行运行正常的问题


    问题:

    • 在做接口自动化时,参数化的时候发现商品创建成功了,但是控制台报错。提示断言失败。下面我把写个demo来一起看下

    log.p文件

    from loguru import logger
    import time
    import os
    
    # 解析配置文件中所写的路径
    PATH = lambda a: os.path.abspath(os.path.join(os.path.dirname(__file__), a))
    now = time.strftime('%Y-%m-%d %H:%M:%S')
    
    # 从配置文件获取日志路径
    # log_path = PATH(get_Path_elements('Log_path')['path'])
    log_path = PATH('../Logs/')  # 暂时写死,就存这个位置下
    
    # 判断日志文件夹是否存在
    if not os.path.exists(log_path):
        # 递归创建
        os.makedirs(log_path)
    
    
    def log():
        logger.add(sink=os.path.join(log_path, now + ".log"),  # 日志记录的位置
                   level="DEBUG",  # 日志记录的等级
                   retention='7 days',  # 日志记录
                   enqueue=False,  # 日志 异步记录
                   backtrace=False,  # 完全的记录描述
                   diagnose=False)
        return logger
    
    

    test_demo.py文件

    import pytest
    from log import log
    
    log = log()
    
    @pytest.mark.parametrize('user', ['shichao', 'xiaoming'])
    def test_demo_1(user):
        log.info(user)
        assert 1 == 1
        log.info("-----" + user)
    
    # pytest.main(["test_demo_1"])
    

    在pycharm中的执行结果

    • 使用debug模式打断点,发现执行完一次后,又执行了一次。那么日志会什么会在每次执行都重复写一次呢?
    • 我开始以为是log封装的有问题又换成了logging这个模块写日志发现还是一样的。。。哎
    • 然后我就想换到命令行执行一次试试

    • 怀疑是pycharm的环境问题?有没有懂得大佬指教一哈
  • 相关阅读:
    Java在ACM中的应用
    acm->stl
    残缺棋盘--状压DP
    EOJ Monthly 2019.3 A
    【CF1141E】Superhero Battle
    AtCoder Grant Contest 10.F 博弈
    莫比乌斯反演总结
    P2257 YY的GCD
    BZOJ1011 莫比乌斯反演(基础题
    HDU1695 莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/shanshan-test/p/15098559.html
Copyright © 2020-2023  润新知