pytest-贼基础的基础记录

经过了对unittest应用HtmlTestRunner长达半个小时的“大眼瞪小眼”,开始在无所不知的Internet上搜索,有没有对于python基础超超超超级薄弱的人更友好的测试框架,然后发现了pytest。浏览了几篇分析python测试框架的文章,相信了它的简单、易用、插件丰富,于是,开始决定学习pytest了。
我坚信自己不是猴子下山,pytest就是我可以抱回家的大西瓜。
下面圆规正传。

下载及配置更改

pytest作为python的第三方测试框架,同样需要下载

pip3 install pytest

如果是用pycharm编写代码的,为了可以直接在测试文件中执行run操作,需要改一下pycharm配置,具体路径是:
Pycharm>Preferrences>Tools>Python Integrated Tools,将Testing下方的Default test runner由unittest改为pytest,之后就可以利用run执行。

应用规则

  1. pytest调用的测试文件需要以test_开头或者_test结尾;
  2. pytest执行的类名需要以Test开头,类下不能有__init__方法,执行的函数需要以test开头;
  3. 断言应用assert
  4. 包pakege需要有init.py文件,否则引用会不成功。
  5. 运行时可以直接在命令行中:pytest test_*.py或是在pycharm中,测试文件内写入下方代码,用run执行。
import pytest
if __name__=='__main__':
    pytest.main()#在这里可以填写运行参数,执行或输出不同内容

应用示例

import pytest
class TestClass():
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert x == "hi"

    def test_three(self):
        x = "world"
        assert x != "worl"

if __name__=='__main__':
    pytest.main()

执行的时候要注意,如果pytest.main()中的运行参数不起作用,可能是直接右键选择Run'pytest in test_*.py导致。这种情况是不会执行main下方的语句的。需要点击上方的Run>Run...,直接选择文件名,可正常执行。

标记过滤

如果想执行特定的用例,可以通过pytest.mark在函数前打标记,执行的时候用-m传入标记即可。

@pytest.mark.abc
    def test_one(self):
        x = "this"
        assert "h" in x
@pytest.mark.def
    def test_two(self):
        x = "hello"
        assert x == "hi"
if __name__=='__main__':
    pytest.main('-m abc')#运行后只执行第一个,不会执行第二个

标记跳过

如果想跳过某一个用例,即在此用例前方标记@pytest.mark.skip
跳过也可以设置条件,例如@pytest.mark.skipif(a>4,reason='guess why'),设置条件时,必须传入reason参数

参数化

如果需要以变量进行参数传递来执行测试,可在此测试函数前方标记@pytest.mark.parametrize(),注意class下的函数第一个参数需要时self,同时对应函数记得传parametrize标记的参数。
举例:

import pytest
class Testclass:
    @pytest.mark.parametrize('choice',["A","b"])
    def test001(self,choice):
        assert len(choice)==1

自我记录,有错误欢迎指正~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容