IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest.ini配置文件详解【pytest系列 12】 -> 正文阅读

[开发测试]pytest.ini配置文件详解【pytest系列 12】

1、pytest中的配置文件的作用

  • pytest.ini pytest的主配置文件,可以改变pytest的默认行为,即pytest会读取该配置信息,然后按照指定的方式去运行
  • conftest.py 测试用例的一些fixture配置
  • __init.py__ 识别文件夹为package包

2、pytest.ini的配置选项

  • 通过pytest --help可以查看如下内容
    [pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:
    
      markers (linelist):   markers for test functions
      empty_parameter_set_mark (string):
                            default marker for empty parametersets
      norecursedirs (args): directory patterns to avoid for recursion
      testpaths (args):     directories to search for tests when no files or directories are given in the command line.
      filterwarnings (linelist):
                            Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings.
      usefixtures (args):   list of default fixtures to be used with this project
      python_files (args):  glob-style file patterns for Python test module discovery
      python_classes (args):
                            prefixes or glob names for Python test class discovery
      python_functions (args):
                            prefixes or glob names for Python test function and method discovery
      disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):
                            disable string escape non-ascii characters, might cause unwanted side effects(use at your own risk)
      console_output_style (string):
                            console output: "classic", or with additional progress information ("progress" (percentage) | "count").
      xfail_strict (bool):  default for the strict parameter of xfail markers when not given explicitly (default: False)
      enable_assertion_pass_hook (bool):
                            Enables the pytest_assertion_pass hook.Make sure to delete any previously generated pyc cache files.
      junit_suite_name (string):
                            Test suite name for JUnit report
      junit_logging (string):
                            Write captured log messages to JUnit report: one of no|log|system-out|system-err|out-err|all
      junit_log_passing_tests (bool):
                            Capture log information for passing tests to JUnit report:
      junit_duration_report (string):
                            Duration time to report: one of total|call
      junit_family (string):
                            Emit XML for schema: one of legacy|xunit1|xunit2
      doctest_optionflags (args):
                            option flags for doctests
      doctest_encoding (string):
                            encoding used for doctest files
      cache_dir (string):   cache directory path.
      log_level (string):   default value for --log-level
      log_format (string):  default value for --log-format
      log_date_format (string):
                            default value for --log-date-format
      log_cli (bool):       enable log display during test run (also known as "live logging").
      log_cli_level (string):
                            default value for --log-cli-level
      log_cli_format (string):
                            default value for --log-cli-format
      log_cli_date_format (string):
                            default value for --log-cli-date-format
      log_file (string):    default value for --log-file
      log_file_level (string):
                            default value for --log-file-level
      log_file_format (string):
                            default value for --log-file-format
      log_file_date_format (string):
                            default value for --log-file-date-format
      log_auto_indent (string):
                            default value for --log-auto-indent
      pythonpath (paths):   Add paths to sys.path
      faulthandler_timeout (string):
                            Dump the traceback of all threads if a test takes more than TIMEOUT seconds to finish.
      addopts (args):       extra command line options
      minversion (string):  minimally required pytest version
      required_plugins (args):
                            plugins that must be present for pytest to run
      render_collapsed (bool):
                            Open the report with all rows collapsed. Useful for very large reports
      max_asset_filename_length (string):
                            set the maximum filename length for assets attached to the html report.
    

3、常用配置项

首先,pytest.ini需要放置在项目根目录下

常用配置项一:markers (linelist): markers for test functions

  • 作用:测试用例中添加@pytest.mark.xxx,xxx为自定义的标签,如果不添加marks选项,就会报warnings
  • 写法:
    [pytest]
    markers =
        weibo: this is weibo page
        toutiao: this is toutiao page
        xinlang: this is xinlang page
    

常用配置二:xfail_strict (bool): default for the strict parameter of xfail markers when not given explicitly (default: False)

  • 作用:默认为False,如果设置xfail_strict=True可以让那些标记为@pytest.mark.xfail(),但实际通过的用例,显示为XPASS的用例,被报告为失败
  • 写法
    [pytest]
    xfail_strict = True
    

常用配置三:addopts (args): extra command line options

  • 作用:addopts表示额外的命令行参数。比如:想要通过生成测试报告、失败重跑两次、通过分布式去跑用例,如果使用命令行,每次都要输入如下命令:
    pytest -v --html-report=report.html --reruns=2 -n=auto
    
  • pytest.ini如下配置后,只需执行命令pytest即可完成同样的效果
    [pytest]
    addopts = -v --html=report.html --reruns=2 -n=auto
    

常用配置四:log_cli (bool): enable log display during test run (also known as "live logging").

  • 作用:控制日志是否实时输出(具体显示哪个module下的哪个用例在执行)
  • 配置为log_cli=False的日志输出
    =========================================================================== test session starts ============================================================================
    platform darwin -- Python 3.9.2, pytest-7.1.1, pluggy-1.0.0
    rootdir: /Users/chenbinhao/Desktop/Sunnada-work/learnPytest/learnPytestIni, configfile: pytest.ini
    plugins: metadata-2.0.1, rerunfailures-10.2, html-3.1.1, repeat-0.9.1
    collected 1 item                                                                                                                                                           
    
    test_01.py .                                                                                                                                                         [100%]
    
    ============================================================================ 1 passed in 0.01s =============================================================================
    
  • 配置为log_cli=True的日志输出
    =========================================================================== test session starts ============================================================================
    platform darwin -- Python 3.9.2, pytest-7.1.1, pluggy-1.0.0
    rootdir: /Users/chenbinhao/Desktop/Sunnada-work/learnPytest/learnPytestIni, configfile: pytest.ini
    plugins: metadata-2.0.1, rerunfailures-10.2, html-3.1.1, repeat-0.9.1
    collected 1 item                                                                                                                                                           
    
    test_01.py::test_01 PASSED                                                                                                                                           [100%]
    
    ============================================================================ 1 passed in 0.01s =============================================================================
    

常用配置五:更改用例收集规则

  • pytest默认的测试用例收集规则:
    • 文件名为test_*.py*_test.py
    • test_开头的函数
    • Test开头的类,不能包含__init__方法
  • 说明
    python_files (args): glob-style file patterns for Python test module discovery
    python_classes (args): prefixes or glob names for Python test class discovery
    python_functions (args): prefixes or glob names for Python test function and method discovery
    
  • 一般建议在原有的规则上添加新的收集规则:
    [pytest]
    python_files = test_* *_test
    python_classes = Test*
    python_functions = test_* newtest_*
    

参考文章:https://www.cnblogs.com/poloyy/p/12702294.html

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:01:13  更:2022-04-07 23:01:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 1:34:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码