Pytest设置和拆卸函数-与自写函数相同? [英] Pytest setup and teardown functions - same as self written functions?

查看:25
本文介绍了Pytest设置和拆卸函数-与自写函数相同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在pytest文档中的以下示例中:

函数setup_function应该为其他函数设置一些数据,比如test_data。因此,如果我编写函数test_data,则必须调用setup_function,如下所示:

def test_data():
    setup_function(....)
    <Test logic here>
    teardown_function(....)

所以唯一的区别是名称约定?

我不明白它到底是如何帮助我创建设置数据的。我本可以像这样编写相同的代码:

def test_data():
    my_own_setup_function(....)
    <Test logic here>
    my_own_teardown_function(....)
由于无法告诉pytest自动将设置函数链接到测试函数,因此它会为函数function的参数function创建设置数据-如果我不需要函数指针,setup_function参数对我没有真正的帮助。那么,为什么要无缘无故地费心创建命名约定呢?

据我所知,Setup函数参数function仅在我需要使用函数指针时才对我有帮助-这是我很少需要的东西。

推荐答案

如果要设置一项或多项测试的细节,可以使用"普通"pytext装置。

import pytest

@pytest.fixture
def setup_and_teardown_for_stuff():
    print("
setting up")
    yield
    print("
tearing down")

def test_stuff(setup_and_teardown_for_stuff):
    assert 1 == 2

要记住的是,良率之前的所有操作都是在测试之前运行的,良率之后的所有操作都是在测试之后运行的。

tests/unit/test_test.py::test_stuff 
setting up
FAILED
tearing down

这篇关于Pytest设置和拆卸函数-与自写函数相同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆