草庐IT

pytest-mock

全部标签

python - 如何让 pytest 运行 doctests 以及正常的测试目录?

我们目前有pytest,覆盖插件在tests目录中的测试上运行。同时运行从我们的主代码中提取的文档测试的最简单方法是什么?--doctest-modules不起作用(可能是因为它只是从tests运行doctests)。请注意,我们希望在同一进程中包含doctest(而不是简单地运行py.test的单独调用),因为我们希望在代码覆盖率中考虑doctest。 最佳答案 现在已经实现了:-)。要使用,请运行py.test--doctest-modules命令,或使用pytest.ini设置您的配置:$catpytest.ini#conte

python - 使用 Mock Python 返回可迭代对象

我正在尝试使用Mock来模拟python中的函数。这是我的代码:resp,content=request(...)request()函数需要返回两个值。这是我尝试过的:withpatch("syncdatetime.py")assync_mock:sync_mock.request.return_value=[obj,'']但是当我运行测试时,我收到错误“Mockobjectisnotiterable”。request函数返回一个Mock类型的对象而不是一个列表。如何修补请求函数以使其返回列表? 最佳答案 我怀疑您的问题是您没有使用

python - 使用 Mock Python 返回可迭代对象

我正在尝试使用Mock来模拟python中的函数。这是我的代码:resp,content=request(...)request()函数需要返回两个值。这是我尝试过的:withpatch("syncdatetime.py")assync_mock:sync_mock.request.return_value=[obj,'']但是当我运行测试时,我收到错误“Mockobjectisnotiterable”。request函数返回一个Mock类型的对象而不是一个列表。如何修补请求函数以使其返回列表? 最佳答案 我怀疑您的问题是您没有使用

python - pytest fixture 的多个副本

假设我有一个像下面这样的简单fixture(使用pytest-django,但它也适用于pytest):@pytest.fixturedefmy_thing(request,db):thing=MyModel.objects.create()request.addfinalizer(lambda:thing.delete())returnthing当我的测试需要MyModel的单个实例时,这非常有用。但是如果我需要两个(或三个或四个)呢?我希望每个实例都是不同的,但要以相同的方式设置。我可以复制/粘贴代码并重命名fixture函数,但这似乎不太优雅。同样,我也试过:@pytest.fi

python - pytest fixture 的多个副本

假设我有一个像下面这样的简单fixture(使用pytest-django,但它也适用于pytest):@pytest.fixturedefmy_thing(request,db):thing=MyModel.objects.create()request.addfinalizer(lambda:thing.delete())returnthing当我的测试需要MyModel的单个实例时,这非常有用。但是如果我需要两个(或三个或四个)呢?我希望每个实例都是不同的,但要以相同的方式设置。我可以复制/粘贴代码并重命名fixture函数,但这似乎不太优雅。同样,我也试过:@pytest.fi

python - 如何使用 python mock 直接模拟父类(super class)?

我正在使用python模拟框架进行测试(http://www.voidspace.org.uk/python/mock/),我想模拟一个父类(superclass)并专注于测试子类的添加行为。(对于那些感兴趣的人,我已经扩展了pymongo.collection.Collection,我只想测试我添加的行为。我不想为了测试目的而将mongodb作为另一个进程运行。)对于本次讨论,A是父类(superclass),B是子类。此外,我定义了直接和间接父类(superclass)调用,如下所示:classA(object):defmethod(self):...defanother_meth

python - 如何使用 python mock 直接模拟父类(super class)?

我正在使用python模拟框架进行测试(http://www.voidspace.org.uk/python/mock/),我想模拟一个父类(superclass)并专注于测试子类的添加行为。(对于那些感兴趣的人,我已经扩展了pymongo.collection.Collection,我只想测试我添加的行为。我不想为了测试目的而将mongodb作为另一个进程运行。)对于本次讨论,A是父类(superclass),B是子类。此外,我定义了直接和间接父类(superclass)调用,如下所示:classA(object):defmethod(self):...defanother_meth

接口自动化测试实战之pytest框架+allure讲解

一、前言本文章主要会讲解Python中pytest框架的讲解,介绍什么是pytest、为何要测试、为何使用以及参考和扩展等等,话不多说,咱们直接进入主题哟。二、pytest讲解2.1什么是pytest?pytest是一款单元测试框架,在编程过程中,单元主要指的是代码中最小的组成部分,例如函数或类,在面向对象中,最小的单元就是类下面的方法。当我们编写好一段程序后,会对这些函数和方法进行检测,是否出现程序错误,这种对程序的函数和方法进行测试的过程,就叫做单元测试。pytest的测试框架类似于unittest框架相似,但pytest的测试框架比unittest更加简洁、高效。2.2为什么使用pyte

python - 如何使用外部 fixture 跳过 pytest?

背景我正在运行py.test与fixture在conftestfile.你可以看到下面的代码(这一切都很好):example_test.pyimportpytest@pytest.fixturedefplatform():return"ios"@pytest.mark.skipif("platform=='ios'")deftest_ios(platform):ifplatform!='ios':raiseException('notios')deftest_android_external(platform_external):ifplatform_external!='androi

python - 如何使用外部 fixture 跳过 pytest?

背景我正在运行py.test与fixture在conftestfile.你可以看到下面的代码(这一切都很好):example_test.pyimportpytest@pytest.fixturedefplatform():return"ios"@pytest.mark.skipif("platform=='ios'")deftest_ios(platform):ifplatform!='ios':raiseException('notios')deftest_android_external(platform_external):ifplatform_external!='androi