首页 > 其他分享 >Pytest解决报告日志等相对路径问题

Pytest解决报告日志等相对路径问题

时间:2024-09-04 15:02:47浏览次数:10  
标签:allure log pytest Pytest 相对路径 file 日志 config

我们在使用pytest搭建测试框架时,有时候为了方便会将生成报告/日志等参数直接作为默认参数配置在pytest.ini中,如

pytest.ini

[pytest]
addopts = -v --html=reports/report.html --alluredir=reports/allure_results

log_file = logs/test.log

需要 pip install pytest pytest-html allure-pytest

如果在项目根目录命令行下执行 pytest . 测试的话,报告和日志可以生成到项目下的reports及logs目录中。
但是在PyCharm中如果直接运行用例,则报告会生成在用例所在目录的reports及logs目录中,如下图。

image

有没有办法在调试时,报告和日志也自动生成在项目下而非运行路径下呢?

我们可以在conftest.py中使用Hooks函数pytest_configure来修改config.option中对应的参数来强制将文件路径改到项目路径(rootdir)下。

conftest.py

def pytest_configure(config):
    rootdir = config.rootdir  # 项目根目录
    # 日志文件路径
    log_file = config.getoption('--log-file') or config.getini('log_file')
    if log_file:
        config.option.log_file = rootdir / log_file
    # pytest-ini报告路径
    htmlpath = config.getoption('--html')
    if htmlpath:
        config.option.htmlpath = rootdir / htmlpath
    # allure-pytest报告数据路径
    allure_report_dir = config.getoption('--alluredir')
    if allure_report_dir:
        config.option.allure_report_dir = rootdir / allure_report_dir

再次运行用例,报告/日志等就会固定生成在项目路径下,如图:

image

标签:allure,log,pytest,Pytest,相对路径,file,日志,config
From: https://www.cnblogs.com/superhin/p/18396443/pytest_relative_report_log_path

相关文章

  • Java 日志系统:记录、监控与问题排查
    Java日志系统:记录、监控与问题排查大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!一、日志系统的重要性在Java开发中,日志系统是不可或缺的一部分。它帮助开发者记录程序运行时的状态,监控系统行为,并在出现问题时进行快速排查。二、日志级别日志系统通常......
  • 日志技术
    概述把程序运行的信息记录到文件中,方便程序员定位Bug,并了解程序的执行情况。把系统执行的信息,方便的记录的指定的位置(控制台、文件、数据库)。可以随时以开关的形式控制日志的启停,无需侵入到源代码中进行修改。日志框架(1)配置文件,将下面三个jar包导入到库(2)将Logback框架的核心文件log......
  • 关于ELK、ELFK、EFK日志分析平台
    ELK:传统的ELK系统由Elasticsearch、Logstash、Kibana组成,由于Logstash由java语言开发的,占用资源巨大。Logstash的占用的资源甚至比Web服务本身消耗的资源还大,因此在每台web服务器上安装Logstash不合适。ELFK:后来在web服务器上部署filebeat日志采集程序,Logstash单独部署在服务器。......
  • aws waf logs日志分析步骤
    1.waf设置AWSWAF----WebACLs----选择地区和规则--->Loggingandmetrics2.设置日志存放在s3中Editlogging---S3bucket----选择一个桶---save 3.在s3另外一个桶中新建目录waflogs4.修改官方配置官方配置:https://docs.aws.amazon.com/athena/latest/ug/create-waf-tab......
  • 多模块项目中,模块的某个类的主方法和测试方法,他们文件访问的相对路径的根目录不同
    遇到问题在编写某个多模块项目的某个类时,在方法中使用Properties读取配置文件,出现的错误。这里假定项目名为project,模块名为modular。importorg.junit.Test;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.Properties......
  • 一起学Java(12)-[日志篇]教你分析SLF4J源码,掌握SLF4J如何与Logback无缝集成的原理
    继续完成上篇(一起学Java(11)-[日志篇]教你分析SLF4J源码,掌握Logger接口实现类加载原理)留给自己的任务,研究Logback是如何和 SLF4J无缝集成的。在之前的SLF4J源码研究中(教你分析SLF4J源码,掌握Logger接口实现类加载原理)我们已经知道SLF4J中利用java.util.ServiceLoader 机......
  • NumPyro入门API和开发人员参考 pyro分布推理效果处理程序贡献代码更改日志入门教程使
    NumPyro文档¶NumPyro入门API和开发人员参考烟火元素分布推理效果处理程序贡献代码更改日志入门教程使用NumPyro的贝叶斯回归贝叶斯分层线性回归例如:棒球击球率示例:变型自动编码器例子:尼尔的漏斗例子:随机波动例如:亚麻和俳句可变推断参数化NumPyro模型的自动绘制不良后几何及......
  • pytest中用装饰器控制新增接口请求时间
    示例场景假设我们有一个提交数据的函数submit_data,我们希望在每次调用后等待一定的时间,以避免重复提交的问题。1.自动化提交接口的时候可以使用time.sleep()的方式这是最直接的方式,在函数调用后直接使用time.sleep()控制等待时间。importtimedefsubmit_data(da......
  • 详细分析MySQL事务日志(redo log和undo log)
    innodb事务日志包括redolog和undolog。redolog是重做日志,提供前滚操作,undolog是回滚日志,提供回滚操作。undolog不是redolog的逆向过程,其实它们都算是用来恢复的日志:1.redolog通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的......
  • Linux日志-btmp日志
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux进阶部分又分了很多小的部分,我们刚讲完了Linux基础软件,下面是Linux日志。Linux系统中的日志是记录系统活动和事件的重要工具,它们可以帮助管理......