pytest常见问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest常见问题相关的知识,希望对你有一定的参考价值。
参考技术A 1. pytest提示 OSError: [WinError 87] 参数错误如果是win7系统、python3.7.4以及pytest5.0+,将python降到3.7.3就ok了(亲测有效),另一个是Windows 10, python 3.8.1, pytest 5.3.3,将pytest降到4.6.9以下版本也ok 因此建议你要么降python版本,要么降pytest版本试试。
2. pytest命令行传参找不到问题
运行脚本增加os.chdir切换到项目脚本所在目录(运行时加载增加对应命令行confgtest.py)
3. pytest命令行传参找读取为空问题
测试用例test_XX.py,文件独立运行直接命令行传参会导致该问题
其他文件调用时传参正常
4. pytest PytestUnknownMarkWarning告警
相应标签添加pytest.int 配置文件
这个方法单个标签和多个标签都适用
5. Pytest日志打印不显示
需要使用命令行参数或者pytest.ini 设置
其中--log-file建议使用命令行拼接绝对路径后传参,配置文件的相对路径受执行文件路径影响,日志路径可能会错误
Pytest日志文件为覆盖写,保留每次命令行执行的日志文件需要文件名不同
This log file is opened in write mode which means that it will be overwritten at each run tests session.
pytest---pytest.ini配置文件
前言
我们在执行用例的时候,每次都在命令行中输入-v,-s等一些命令行参数的时,比较麻烦。其中pytest.ini这个配置文件可以快速的帮助我们解决这个问题。
配置文件
pytest.ini文件是pytest的主配置文件,可以改变pytest的运行方式,且是一个固定的文件pytest.ini文件,pytest.ini一般存放在项目的根目录中。我们可以打开终端,在终端中输入pytest -h来查看一些pytest.ini参数配置详情,这里的参数比较多,安静只截取一部分。
参数详解
这里面这么多参数可能目前用不上,安静只介绍一个常用的参数信息,比如,我们每次后面跟的参数信息
addopts
addopts:表示可以更改默认命令行选项
[pytest] # 表示可以更改默认命令行选项 addopts = -v -s
这样我们直接在cmd中执行pytest就会默认加上以上2个参数。将我们print的内容和用例执行结果。
testpaths
testpaths:表示执行用例的目录
[pytest] addopts = -v -s testpaths = test_01
在当前目录创建两个文件夹,其中一个是test_01,另一个是test_02目录中均存有用例。通过添加testpaths执行执行测试用例目录为test_01,这样就只会执行test_01下的目录
python_file
python_file:表示执行文件名
[pytest] addopts = -v -s testpaths = test_01 python_files = test_01.py
在test_01的目录下存放多个test文件,通过加入python_files来固定确认执行那一个测试文件内容
python_classes
python_classes:表示执行的类名
[pytest] addopts = -v -s testpaths = test_01 python_files = test_01.py python_classes = Test_
在test_01.py文件中写入两个类,不同的类名。这样就只会执行标记的类内容
import pytest class Test_ini: def test01(self): print(\'用例01\') def test02(self): print(\'用例02\') def test03(self): print(\'用例03\') class Testini: def test_01(self): print(\'用例01\') def test_02(self): print(\'用例02\') def test_03(self): print(\'用例03\') if __name__ == \'__main__\': pytest.main([\'-s\'])
通过执行,可以看到只执行了Test_的内容
python_functions
python_functions:表示执行方法名内容
[pytest] addopts = -v -s testpaths = test_01 python_files = test_01.py python_classes = Test python_functions = test_
还是上面的数据,通过执行。
通过上面内容,安静简单的将几个常用到的配置文件内容信息列举出来,大家也可以进行下方留言,看看还有哪些比较常用的,可以一起分享出来。
以上是关于pytest常见问题的主要内容,如果未能解决你的问题,请参考以下文章