加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 可以组合pytest灯具吗?

发布时间:2020-12-20 12:07:09 所属栏目:Python 来源:网络整理
导读:在pytest中,1个夹具可以构建在另一个上吗?我有一个非常简单的夹具叫做“清洁剂”,定义为…… import pytestfrom mypackage import db@pytest.fixture()def cleaner(request): def finalizer(): db.clear() request.addfinalizer(finalizer) 然后在我的setup
在pytest中,1个夹具可以构建在另一个上吗?我有一个非常简单的夹具叫做“清洁剂”,定义为……

import pytest
from mypackage import db

@pytest.fixture()
def cleaner(request):
  def finalizer():
    db.clear()
  request.addfinalizer(finalizer)

然后在我的setup.cfg中我…

[pytest]
norecursedirs = .git venv
usefixtures = cleaner

这导致数据库在每次测试后被截断.哪个好.但是现在我想要我制作的其他灯具也可以从清洁器中调出终结器.有没有办法定义另一个以某种方式扩展或称为更清洁的夹具?

解决方法

您必须声明您的其他灯具明确依赖于清洁剂:

import pytest

@pytest.fixture
def cleaner(request):
  def finalizer():
    print 'n"cleaner" finalized'
  print 'n"cleaner" fixture'
  request.addfinalizer(finalizer)


@pytest.fixture
def other(cleaner):
    print 'n"other" fixture'


def test_foo(other):
    pass

使用py.test -s -v运行它会产生:

test_foo.py@16::test_foo
"cleaner" fixture

"other" fixture
PASSED
"cleaner" finalized

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读