每次讲到unittest测试框架的时候,经常有同学在群里反映,为啥我的运行不是按照我往suite里添加的用例顺序执行的,为什么别人的能跑出来报告,我的就不行...

当然,首先确认代码是OK的,如果代码没有问题,那多半就是执行方式不太对了,我们分别来看看两种执行方式。

01

unittest 执行方式

这种执行方式是pycharm自带的,首先看一下下面这段测试代码:

import unittest

class TestCase(unittest.TestCase):

def setUp(self):

print("Before every test case!")

def test_case_01(self):

print("this is test case 1")

def test_case_02(self):

print("this is test case 2")

#大家可以认为这是一个类似于

if __name__ == "__main__":

unittest.main()

如果想运行这段代码,我们可以直接在PyCharm中if __name__ == "__main__": 这一句的下面击右键,然后选择 run unittest for teststudy

这样就是调用PyCharm中的unittest插件运行了我们当前这个测试类。

PyCharm中的unittest插件功能很强大,不仅可以运行整个测试类,还可以选择其中某一个测试用例执行,比如,我只想执行test_case_01,可以将鼠标移到test_case_01区域,然后点击右键,这样可以实现执行单独一条测试用例。

 

或者,可以点击测试用例左边的小运行图标,都可以实现执行单条测试用例

上面的这些执行方式虽然入口不一样,但是都是借助PyCharm的unittest插件进行运行,这种执行方式的缺点是依赖PyCharm,以及无法生成报告,如果想生成测试报告,就要考虑Python运行方式。

02

Python运行方式

Python运行方式可以直接在命令行中调用。

 

在这里,要注意,只有添加了这段代码,才能唤醒神龙,调用起Python运行方式

if __name__ == "__main__":

unittest.main()

这段代码可以理解为是一个主函数,当前这个Python文件的入口。

当然除了在命令行,我们也可以在PyCharm中添加运行方式,选择Edit Configurations

点开之后,发现里面已经有了一些运行方式,通过名称可以看出来,这些都是unittest的运行方式。

 

那Python的运行方式如何添加呢,我们可以点击左上角的+号,选择Python

 

然后将我们添加的这个文件添加到script path 中

 

接着,我们就能在右上角看到我们刚刚添加的运行方式,直接选择这个运行按钮,就可以用Python的运行方式去运行了

如果后面要添加报告应用或者用testsuite组织用例顺序,只要在if __name__ == "__main__": 代码后面添加,然后直接用Python方式运行就可以了。

例如:

Python运行方式不依赖于PyCharm,不需要PyCharm启动就可以调用,便于以后直接在CMD下调用或者添加到Jenkins中。

最后,希望本文可以帮助大家。

作  者:Testfan  Chris

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

PyCharm上unittest 测试用例两种执行方式的更多相关文章

  1. Pycharm上python运行和unittest运行两种执行方式解析

    前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告,为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittes ...

  2. python常有模块:模块、引入语法、两种执行方式、模块搜索顺序

    今天主要讲了以下几点:一.模块三问.定义及分类二.import和from的语法三.文件的两种执行方式及搜索顺序四.内置函数 一.模块.import和from的语法 1.什么是模块   模块是一堆功能函 ...

  3. 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  4. 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  5. Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  6. shell教程-001:shell简介 什么是shell,shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的. Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解 ...

  7. 导模块的细节:(跨文件导入模块 &模块的两种执行方式) | 包的概念与使用 | 包中的相对导入语法

    今日内容 包: 1. 导入模块的细节 2. 包的概念与使用 3. 包中的相对导入语法 跨文件夹导入模块 1. 假设有一个文件夹a ,a 的下面有一个ma 的模块,如果a文件夹所在目录在环境变量,a文件 ...

  8. unittest===unittest 的几种执行方式

    #demo.py import requests import json class RunMain: def __init__(self, url, method, data=None): self ...

  9. Golang两种执行流程以及区别

    Go语言的执行方式有两种,一种是编译后再执行,另一种直接go run执行. 一.先编译后执行 .go文件(源代码)--->go build指令把源代码编译(如果是windows下会编译出一个.e ...

随机推荐

  1. Linux scp 免密码 传输文件

    Linux scp 免密码 传输文件 背景介绍 最近项目是集群化部署(由 node1,node2,node3 三台 CentOS 7.4 的虚拟机构成). 但是,涉及到跨机器同步文件的问题,想通过写s ...

  2. IDEA "Library source does not match the bytecode for class"问题

    问题描述 Jar包更新后,报错信息:"Library source does not match the bytecode for class" 经检查,发现Jar内容还是旧版本的 ...

  3. Python列表排序

    1.冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要交换,也就 ...

  4. docker pull / docker login 报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x509

    docker pull 和 docker login 的时候报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x ...

  5. gin框架教程三:JWT的使用

    JWT介绍 JWT (JSON Web Token) 是一种规范.这个规范允许我们使用JWT在用户和服务器之间安全传递信息. JWT的组成: jwt分3个部分,Header 头部.Payload 载荷 ...

  6. numpy array和mat的乘法

    1.mat()函数中矩阵的乘积可以使用(星号) *  或 .dot()函数,其结果相同.而矩阵对应位置元素相乘需调用numpy.multiply()函数. a = np.mat([1, 2, 3]) ...

  7. U盘安装Ubuntu Server CD-ROM挂载失败

    U盘安装 Ubuntu Server 发生Failed to copy file from CD-ROM问题 使用UltraISO制作Ubuntu Server安装盘,在安装过程中出现[!!] Loa ...

  8. 【Python开发】Python 适合大数据量的处理吗?

    Python 适合大数据量的处理吗? python 能处理数据库中百万行级的数据吗? 处理大规模数据时有那些常用的python库,他们有什么优缺点?适用范围如何? 需要澄清两点之后才可以比较全面的看这 ...

  9. 字符串转 Boolean 的正确方式

    String s1 = "false"; String s2 = "true"; String s3 = "fAlSe"; String s ...

  10. Macaca环境搭建(三)----uirecorder Android录制

    一.安装Macaca-Android 命令窗口输入:npm i macaca-android -g 二.安装android-SDK 1.下载并安装ADT-bundle,官网下载地址我就不提供了,因为下 ...