首页 > 技术文章 > 记:pytest在pycharm中会运行多次,命令行运行正常的问题

shanshan-test 2021-08-04 13:57 原文

问题:

  • 在做接口自动化时,参数化的时候发现商品创建成功了,但是控制台报错。提示断言失败。下面我把写个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的环境问题?有没有懂得大佬指教一哈

推荐阅读