pythonmain函数用法_Pytest用法之main函数

简介

Pytest是当下首先的Python项目单元测试工具。测试时,使用方法有两种:

命令行方式(传递给Pytest各种参数)

在代码中直接执行pytest并调用main函数(传递进各种参数)

本文将小结使用第二种方式中main函数各种参数的使用问题。

无参形式

#一些测试单元……

if name == ‘main’:

pytest.main()

不带任何参数的main()默认运行的是当前目录及子目录的所有文件夹的测试用例。

参数

Main()函数加参数时指定运行规则时,参数需要放在列表中。可以指定参数和路径,常用的参数有:

(1)‘-s’:关闭捕捉,输出打印信息。

(2)‘-v’:用于增加测试用例的冗长。

(3)‘-k’ :运行包含某个字符串的测试用例。如:pytest -k add XX.py 表示运行XX.py中包含add的测试用例。

(4)‘q’:减少测试的运行冗长。

(5)‘-x’:出现一条测试用例失败就退出测试。在调试阶段非常有用,当测试用例失败时,应该先调试通过,而不是继续执行测试用例。

基础示例

import pytest

@pytest.mark.webtest

def test_send_http():

pass # perform some webtest test for your app

def test_something_quick():

pass

def test_another():

pass

class TestClass:

def test_method(self):

pass

if name == "main":

pytest.main(['-q'])

更复杂情形

指定某个测试类或测试方法,用“::”隔开。如:

命令行格式:

pytest 文件名.py::测试方法

代码行格式:

pytest.main([模块.py::类或方法])

指定某个测试类下的测试方法,用“::”隔开。如:

命令格式:

pytest 文件名.py::测试类::测试方法

代码行格式:

pytest.main([模块.py::类::方法])

pytest.main(["testCase/campaign/test_campaign_list.py::TestListCampaign::test_list_campaign_success"])

指定运行某个目录下的某个用例,其中路径为当前执行文件的相对路径

pytest.main(["testCase/campaign/test_campaign_list.py"])

运行某个目录下的全部用例,写到文件夹名字即可,不需要写到py文件

pytest.main(["testCase/campaign/"])

其他情形:

使用-m对用例进行标记,用例需注释@pytest.mark.xxx,将xxx作为参数传入

使用-m "mark1 and mark2"可以同时选中带有这两个标记的所有测试用例。

使用-m "mark1 and not mark2"选中带哟与mark1的测试用例,而过滤掉带有mark2的测试用例

使用-m "mark1 or mark2"则选中带有mark1或者mark2的所有测试用例

"""

pytest.main(["-v","-x"])#-x 遇到错误即停止

pytest.main(["-v","--maxfail=2","--tb=no"])#--maxfail=n 设定最多失败 n 次即停止

pytest.main(["-s"])#允许终端运行时输出某些结果,例如print

pytest.main(["--lf"])#定位失败的用例

pytest.main(["--ff"])#定位失败的用例首先执行,但是正常的用例也会执行

pytest.main(["-q"])#简化输出信息

pytest.main(["-l"])#打印失败用例的变量值

pytest.main(["--tb=short"])

小结

个人感觉,Pytest最经典用法还是命令行方式,因此,充分熟悉其常用参数是熟练进行单元测试的基础。因此,本人建议本文介绍的代码行内方式宜主要作为测试量较少且简单情况下测试使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值