草庐IT

pytest-fixture

全部标签

异步和等待方法的 Python pytest 用例

我正在尝试为以下异步、等待方法编写pytest,但我一无所获。classUserDb(object):asyncdefadd_user_info(self,userInfo):returnawaitself.post_route(route='users',json=userInfo)asyncdefpost_route(self,route=None,json=None,params=None):uri=self.uri+routeifrouteelseself.uriasyncwithself.client.post(uri,json=json,params=params)asre

python - pytest 是否支持 "default"标记?

我正在使用pytest测试嵌入式系统的python模型。要测试的功能因平台而异。(我在此上下文中使用“平台”来表示嵌入式系统类型,而不是操作系统类型)。组织我的测试最直接的方法是根据平台类型将它们分配到目录。/platform1/platform2/etc.pytest/platform1由于许多功能跨平台重叠,这很快就变得难以支持。从那以后,我将我的测试移到了一个目录中,每个功能区域的测试分配给一个文件名(例如test_functionalityA.py)。然后,我使用pytest标记来指示文件中的哪些测试适用于给定平台。@pytest.mark.all_platformsdefte

python - 如何使用 pytest 将 fixture 中的对象共享到所有测试?

在具有session范围和autouse=True的fixture中定义对象的最佳方法是什么,以便它可用于所有测试?@pytest.fixture(scope='session',autouse=True)defsetup_func(request):obj=SomeObj()接下来,我想要一些魔法,让之前创建的obj将出现在每个测试上下文中,而不需要每个测试都定义setup_funcfixture。deftest_one():obj.do_something_fancy() 最佳答案 我的建议是将fixture添加到conftes

python - 将命令行参数作为参数传递给 py.test fixture

诚然,这不是开始的最佳方式,更重要的是,fixture参数已解析,即Options.get_option()在其他一切之前被调用。建议和建议将不胜感激。来自config.pyclassOptions(object):option=None@classmethoddefget_option(cls):returncls.option来自conftest.py@pytest.yield_fixture(scope='session',autouse=True)defsession_setup():Options.option=pytest.config.getoption('--remot

python - Pytest跳过具有特定参数值的测试

我有一些想要参数化的测试,但有些测试应该只应用于参数的一个值。下面举一个具体的例子,我想将参数one和two应用到test_A,但只提供参数one到test_B。当前代码@pytest.fixture(params=['one','two'])defdata(request):ifrequest.param=='one'data=5returndatadeftest_A(data):assertTruedeftest_B(data):assertTrue期望的结果我基本上想要这样的东西,但我不知道如何在pytest中正确编码:@pytest.fixture(params=['one',

python - 如何将 pytest 的结果/日志保存到文件中?

我在尝试将pytest显示的所有结果保存到文件(txt、日志,无关紧要)时遇到问题。在下面的测试示例中,我想将控制台中显示的内容捕获到某种文本/日志文件中:importpytestimportosdeftest_func1():assertTruedeftest_func2():assert0==1if__name__=='__main__':pytest.main(args=['-sv',os.path.abspath(__file__)])我想将控制台输出保存到文本文件中:test-mbp:hi_worldua$pythontest_out.py==================

python - pytest.mark.parametrize 中的 indirect = True/False 是什么意思?

我只是想了解它是什么意思,或者如果我在pytest.mark.parametrize中将间接参数设置为True或False会发生什么?谢谢 最佳答案 使用indirect=True你可以参数化你的fixture,False-默认值。示例:importpytest@pytest.fixturedeffixture_name(request):returnrequest.param@pytest.mark.parametrize('fixture_name',['foo','bar'],indirect=True)deftest_ind

Python Nose 测试继承: load unit test fixtures from subclasses

我正在将Python项目的测试套件从unittest转换为nose。该项目现有的框架(基于unittest)相当笨重,包含大量用于测试发现和运行的高度定制的代码,因此我正在尝试迁移到nose以使一切更加精简。但是,我在生成测试套件的代码方面遇到了问题。该项目的框架有两种运行测试的方式。一个是classTestSomething(unittest.TestCase):defsetUp(self):...deftest_x(self):...deftest_y(self):...suite=unittest.TestSuite()suite.addTest(unittest.makeSui

python - pytest:如何将类参数传递给 setup_class

我正在使用pytest的参数化注释将参数传递到类中。我能够在测试方法中使用参数,但是,我不知道如何在setup_class方法中使用参数。importpytestparams=['A','B','C']@pytest.mark.parametrize('n',params)classTestFoo:defsetup_class(cls):print("setupclass:TestFoo")#Dosomesetupbasedonparamdeftest_something(self,n):assertn!='D'deftest_something_else(self,n):assert

python - 运行 pytest 测试套件时的初始和最终检查

我有高效的代码,可以在我的$HOME文件夹中创建配置文件,并在隔离环境中运行我的测试,我在conftest.py中修补了$HOME。我仍然不确定这是否普遍有效,也许不周到的书面测试功能可能会爆发。为了确保我的测试套件的有效性,我想对$HOME中的各个文件进行初步检查,并在运行测试套件后进行最终检查。如何使用pytest的“官方”方式实现这一点?我有一个肮脏的hack,它可以工作但会弄乱报告。我的测试套件现在是正确的,这个问题是出于好奇,因为我想了解更多关于pytest的信息。补充:同样的问题,但不同的用例:我想检查第3方插件是否满足版本要求。如果不是这种情况,我想显示一条消息并停止py