Python基础——Visual Studio版本——pytest

举报
红目香薰 发表于 2022/08/31 19:54:03 2022/08/31
【摘要】 ​ ​编辑Python基础——Visual Studio版本——pytestpytest概述Pytest是一个使创建简单及可扩展性测试用例变得非常方便的框架。测试用例清晰、易读而无需大量的繁琐代码。只要几分钟你就可以对你的应用程序或者库展开一个小型的单元测试或者复杂的功能测试。pytest支持第三方插件,灵活性较高。pytest特点非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考能...

 编辑

Python基础——Visual Studio版本——pytest

pytest概述

Pytest是一个使创建简单及可扩展性测试用例变得非常方便的框架。测试用例清晰、易读而无需大量的繁琐代码。只要几分钟你就可以对你的应用程序或者库展开一个小型的单元测试或者复杂的功能测试。pytest支持第三方插件,灵活性较高。

pytest特点

  • 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  • 能够支持简单的单元测试和复杂的功能测试
  • 支持参数化
  • 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
  • 支持重复执行(rerun)失败的case
  • 支持运行由nose, unittest编写的测试case
  • 可生成html报告
  • 方便的和持续集成工具jenkins集成
  • 可支持执行部分用例
  • 具有很多第三方插件,并且可以自定义扩展

环境安装

直接安装pip install pytest就行。

编辑编辑

文件不是很大,很快就下载完毕。

编辑

版本查看命令

pip show pytest

编辑

注意点

  • 测试文件以test_开头(以_test结尾也可以)
  • 测试类以Test开头,并且不能带有 init 方法
  • 测试函数以test_开头
  • 断言使用基本的assert即可

控制台基础示例

# 基础函数用于输入值
def test(x):
    return x +1


# 测试函数是由test_开头的,这里assert断言是判断结果与目标返回是否相同
def test_answer():
    assert test(3)==5

基础示例使用:

可以在提示中看到,执行100%,但是出现了ERROR。第八行的结果与预期结果不符,这就代表测试用例未通过。

如果无法使用,请更换命令【python -m pytest 类名.py】,这里不限制test_开头或_test结尾。

编辑

如果是通过则会告知passed

# 基础函数用于输入值
def test(x):
    return x +1


# 测试函数是由test_开头的,这里assert断言是判断结果与目标返回是否相同
def test_answer():
    assert test(3)==4

编辑

执行示例

文件名称【test_demo.py】,文件名必须是test_开头

import pytest
 
class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x
 
    def test_two(self):
        x = "hello"
        assert len(x)==5
 
if __name__ == '__main__':
    pytest.main()

示例中能看到 

编辑

但是依然建议使用cmd控制台。 

编辑

pytest.main()

pytest.main()会自动读取当前目录下的所有test开头的.py文件,运行test方法或者类。

  • pytest的参数,例如:pytest -sv test_demo.py
  • -x 用例一旦失败,就立刻停止执行
  • --maxfile=num 用例达到多少停止执行
  • -m 标记用例
  • -k 执行包含某个关键字的测试用例
  • -v 打印详细日志
  • -s 打印输出日志 和v连用
  • --lf 只重新运行失败的用例
  • --ff 先运行失败的用例再运行正常的用例

套件执行顺序

编辑

装饰器

skip  : 跳过这个用例 

reason:注释/备注

# 跳过这个用例skip装饰器
@pytest.mark.skip(reason = "暂时不执行")
def test_case2():
    print("3这里是case2\n")

编辑

判断语句

不需要二次计算

# -*-coding:utf-8 -*-
import pytest
 
def test_A(x=2):
    print("%d**%d=%d",x,x,x**x)
    return x**x


@pytest.mark.skipif(test_A() == 4 ,reason="正确不需要二次计算")
def test_B(x=2):
    print("二次计算结果:",(x**x))
    return x**x

编辑

需要二次计算

# -*-coding:utf-8 -*-
import pytest
 
def test_A(x=3):
    print("%d**%d=%d",x,x,x**x)
    return x**x


@pytest.mark.skipif(test_A() == 4 ,reason="正确不需要二次计算")
def test_B(x=2):
    print("二次计算结果:",(x**x))
    return x**x

编辑

allure报告生成

下载地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/


编辑

windows使用zip包

编辑

下载内容:

编辑

 编辑


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。