每次讲到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. Document、HTMLDocument关系的探究

    首先贴上代码: console.log(Object.getPrototypeOf(document)); console.log(Object.getPrototypeOf(Object.getPr ...

  2. C语言基础:内置函数的调用

    #include<stdio.h>#include<math.h>#include<stdlib.h>#include<ctype.h>#include ...

  3. 在web项目中获取ApplicationContext上下文的3种主要方式及适用情况

    最近在做web项目,需要写一些工具方法,涉及到通过Java代码来获取spring中配置的bean,并对该bean进行操作的情形.而最关键的一步就是获取ApplicationContext,过程中纠结和 ...

  4. SQLSERVER去除某一列的重复值并显示所有数据\DISTINCT去重\ISNULL()求SUM()\NOT EXISTS的使用

    进入正题,准备我们的测试数据 1.我们要筛选的数据为去除 GX 列的重复项 并将所有数据展示出来,如图所示: ' 2.这种情况下我们是不可以使用DISTINCT来去重的,我们可以来尝试一下: 首先,单 ...

  5. gulp4.0配置

    var gulp = require('gulp'); var rename = require('gulp-rename');//重命名 var uglify=require('gulp-uglif ...

  6. 闲记Windows 取证艺术

         是不是很好奇,别人能够在你电脑上查看你运行程序历史,文档使用痕迹,浏览器浏览历史种种历史痕迹,没错,通过简单的系统了解以及配合相对应的工具,这一切就是这么的简单,看起来很高大上的操作,其实是 ...

  7. Oracle 看出表结构与属性、表空间设计

    1.Oracle 查看表空间 SELECT b.comments as 注释, a.column_name as 列名, a.data_type || '(' || a.data_length || ...

  8. 【神经网络与深度学习】GLog使用笔记

    环境: XPsp3 vs2005 glog-0.3.3 http://download.csdn.net/detail/chenguangxing3/6661667 编译: glog-0.3.3里面有 ...

  9. AKKA文档2.1(java版)——什么是AKKA?

    可扩展的实时事务处理 我们相信编写并发.容错.可扩展的应用相当的困难.盖因大多数时候我们一直在使用错误的工具和错误的抽象等级.AKKA就是为了改变这一切的.我们利用角色模型提升了抽象等级,并且提供了一 ...

  10. java学习-3

    输入语句Scanner的使用方法 1.导包 import java.util.Scanner 2.创建 从键盘输入:Scanner sc = new Scanner(System.in); 3.使用 ...