1.Pytest测试用例运行规则


在pytest单元测试框架下面执行用例,需要满足以下几个特点:

  1. 文件名以test_*.py开头或者*_test.py

  2. 测试类、测试函数以test开头

  3. 所有的包必须要有 __init__.py文件

一般在cmd命令行下面执行pytest用例有3种方法。大家可以选择使用,我推荐第一种:

  pytest  文件名

  py.test  文件名

  python -m pytest 文件名

如果运行某个测试类下面的具体函数,可以使用:pytest  文件名::测试函数名

如果在测试过程中,遇到测试停止的方法可以加 -x参数: pytests -x 文件名

E:\untitled1>pytest -x collect.py
============================= test session starts =============================
platform win32 -- Python 3.5., pytest-5.0., py-1.8., pluggy-0.12.
rootdir: E:\untitled1
collected items collect.py .F [%] ================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________ self = <collect.TestClass object at 0x00000000036A4A58> def test_two(self):
x = 'hello'
> assert hasattr(x, 'check')
E AssertionError: assert False
E + where False = hasattr('hello', 'check') collect.py:: AssertionError
===================== failed, passed in 0.08 seconds ======================

从结果可以看出第二个测试用例没有运行成功并且停止了。当错误数达到某个量级时,测试停止,参数为:maxfail=num 示例如下:

E:\untitled1>pytest --maxfail= collect.py
============================= test session starts =============================
platform win32 -- Python 3.5., pytest-5.0., py-1.8., pluggy-0.12.
rootdir: E:\untitled1
collected items collect.py .F ================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________ self = <collect.TestClass object at 0x000000000368FCF8> def test_two(self):
x = 'hello'
> assert hasattr(x, 'check')
E AssertionError: assert False
E + where False = hasattr('hello', 'check') collect.py:: AssertionError
===================== failed, passed in 0.08 seconds ======================

2.在Pycharm中编写测试代码


在编写测试代码运行之前需要把切换pytest运行环境。file-->setting-->tools-->python intergrated tools--->default test runner 切换为 py.test  然后编写如下测试代码:

import pytest

class TestClass:

    def test_one(self):
x = 'hello'
assert 'h' in x def test_two(self):
x = 'hello'
assert hasattr(x, 'check') def test_secound(self):
assert 'x' in 'ddd' if __name__ == '__main__':
pytest.main('-q test_class.py')

运行结果如下:   (其中:     .表示测试结果是通过的 pass  E:表示errror  脚本中可能存在问题  F表示failed 测试结果不通过)

C:\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 5.0.3\helpers\pycharm\pytestrunner.py" -p pytest_teamcity E:/untitled1/test_class.py "-k TestClass and test_secound"
Testing started at : ...
============================= test session starts =============================
platform win32 -- Python 3.5., pytest-5.0., py-1.8., pluggy-0.12.
rootdir: C:\Program Files (x86)\JetBrains\PyCharm 5.0.\jre\jre\bin
collected items / deselected / selected . F
self = <test_class.TestClass object at 0x000000000365EB38> def test_secound(self):
> assert 'x' in 'ddd'
E AssertionError: assert 'x' in 'ddd' E:\untitled1\test_class.py:: AssertionError ================================== FAILURES ===================================
___________________________ TestClass.test_secound ____________________________ self = <test_class.TestClass object at 0x000000000365EB38> def test_secound(self):
> assert 'x' in 'ddd'
E AssertionError: assert 'x' in 'ddd' E:\untitled1\test_class.py:: AssertionError
=================== failed, deselected in 0.06 seconds ====================

Pytest单元测试框架-测试用例运行规则的更多相关文章

  1. Pytest单元测试框架-Pytest环境安装

    unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...

  2. Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告

    之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...

  3. Pytest单元测试框架之简单操作示例

    前言: Pytest是第三方单元格测试框架,更加简单,灵活,而且提供了更多丰富的扩展: Pytest与UnitTest框架的区别 UnitTest测试用例执行顺序是依照ascii码执行,而Pytest ...

  4. Pytest单元测试框架-学习

    pytest: Python的一个单元测试框架,基于UnitTest二次开发,语法上更加简洁,可以用来做Python开发项目的单元测试,UI自动化.接口自动化测试等,有很多的插件访问Pytest插件汇 ...

  5. pytest单元测试框架

    一.安装方式 1.安装命令:pip install pytest 2.html安装插件:pip install pytest -html 二.pytest执行指定测试用例 1.思想:通过对测试用例进行 ...

  6. Pytest 单元测试框架

    1.pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效 2.安装 pytest pip install pytest 3.验证 pytest 是否安装成功 p ...

  7. Pytest单元测试框架——Pytest+Allure+Jenkins的应用

    一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...

  8. Pytest单元测试框架之FixTure基本使用

    前言: 在单元测试框架中,主要分为:测试固件,测试用例,测试套件,测试执行及测试报告: 测试固件不难理解,也就是我们在执行测试用例前需要做的动作和测试执行后的需要做的事情: 比如在UI自动化测试中,我 ...

  9. Pytest单元测试框架-allure测试报告

    Allure Test Report 对于不同的编程语言,有很多很酷的测试框架.不幸的是,它们中只有少数能够提供测试执行输出的良好表示.Qameta软件测试团队正在致力于Allure--一个开源框架, ...

随机推荐

  1. Mac下安装oh my zsh之后配置环境变量失效问题

    背景:在刚拿到mac 的时候,使用了默认的bash,由于工作需要在电脑上安装了maven,在~/.bash_profile 文件中添加了maven的配置如下 $ cat ~/.bash_profile ...

  2. Codeforces I. Barcelonian Distance(暴力)

    题目描述: In this problem we consider a very simplified model of Barcelona city. Barcelona can be repres ...

  3. (MYSQL)回表查询原理,利用联合索引实现索引覆盖

    一.什么是回表查询? 这先要从InnoDB的索引实现说起,InnoDB有两大类索引: 聚集索引(clustered index) 普通索引(secondary index) InnoDB聚集索引和普通 ...

  4. 账户(/etc/passwd、/etc/shadow)与组(/etc/group、/etc/gshadow)文件解析

    1. 账户信息文件 账户信息被保存在 /etc/passwd 文件中,通过命令 cat /etc/passwd 查看文件内容如下: [root@192 ~]# cat /etc/passwdroot: ...

  5. evpp tcp server服务端

    // netserver.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <evpp/tcp_server.h> ...

  6. 通过jekyll在Github 搭建个人博客

    能快乐旅行的人,一定是轻装旅行的人 前言 应广大的网友(装逼~~哈哈)要求,决定写个Jekyll+Giuhub搭建博客的教程,以便帮助更多的人,毕竟我也是这么过来的.这是我的博客地址,可以先看看效果. ...

  7. 我理解的Linux内存管理

    众所周知,内存管理是Linux内核中最基础,也是相当重要的部分.理解相关原理,不管是对内存的理解,还是对大家写用户态代码都很有帮助.很多书上.很多文章都写了相关内容,但个人总觉得内容太复杂,不是太容易 ...

  8. HDU - 3644:A Chocolate Manufacturer's Problem(模拟退火, 求多边形内最大圆半径)

    pro:给定一个N边形,然后给半径为R的圆,问是否可以放进去.  问题转化为多边形的最大内接圆半径.(N<50): sol:乍一看,不就是二分+半平面交验证是否有核的板子题吗. 然而事情并没有那 ...

  9. python高性能编程 读书笔记

    GIL 确保 Python 进程一次只能执行一条指令 ====分析工具cProfile 分析函数耗时line_profiler  逐行分析 heapy 追踪 Python 内存中所有的对象— 这对于消 ...

  10. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码2的解析

    功能码2的功能是:读从机离散量输入信号的 ON/OFF 状态.可读取1-2000个连续的离散量输入状态,如果离散输入的数量个数不是8的整数倍,则用0填充最后数据字节的剩余位,功能码2的查询信息规定了要 ...