PyCharm上unittest 测试用例两种执行方式

每次讲到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插件运行了我们当前这个测试类。

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

PyCharm上unittest 测试用例两种执行方式
 

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

PyCharm上unittest 测试用例两种执行方式

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

02

Python运行方式

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

 PyCharm上unittest 测试用例两种执行方式

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

if __name__ == "__main__":

unittest.main()

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

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

PyCharm上unittest 测试用例两种执行方式

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

 PyCharm上unittest 测试用例两种执行方式

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

PyCharm上unittest 测试用例两种执行方式
 

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

 PyCharm上unittest 测试用例两种执行方式

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

PyCharm上unittest 测试用例两种执行方式

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

例如:

PyCharm上unittest 测试用例两种执行方式

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

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

作  者:Testfan  Chris

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

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

上一篇:goldengate的HANDLECOLLISIONS参数


下一篇:巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解