草庐IT

b2Fixture

全部标签

python - 在 pytest 的不同测试中仅使用某些 fixture 参数化

我有一个名为n_groups的fixture,我想在某些情况下对其进行参数化,但在其他情况下则不会。这样做的原因是因为我的类似MVC的数据模型的结构方式,我在“模型”类中尽可能多地测试,但“Controller”类不需要那么广泛的测试,因为我已经在“模型”中完成。因此,在Controller中运行具有所有参数化的测试是多余的,我想限制测试的数量,从而限制测试时间。目前为了测试我的Controller的初始化,生成了超过18,000个测试,运行需要42分钟!查看Travis-CIoutput.目前,我的解决方法是,#Contentsofconftest.pyimportpytestimp

python - 如何在 pytest 中两次使用参数化的依赖 fixture ?

我试图在单个测试中多次使用参数化fixture,目的是获取其所有值的笛卡尔积。https://stackoverflow.com/a/39444098/102441展示了如何对一个简单的fixture执行此操作:importpytest@pytest.fixture(params=[0,1,2])deffirst(request):returnrequest.paramsecond=first#runs3x3=9timesdeftest_double_fixture(first,second):assertFalse,'{}{}'.format(first,second)但是,如果参数

python - ScopeMismatch 将 session 范围的 fixture 与 pytest-mozwebqa 插件一起用于 py.test

我正在使用pytest-mozwebqa插件来运行一些selenium测试。我只想为所有测试登录一次应用程序,所以我尝试在conftest.py中使用session范围的fixture,但出现以下错误。我如何编写此登录装置,以便每个测试都不需要登录,并且所有测试都可以使用一次登录?这是我遇到的错误:=================================================================================================ERRORS===========================================

python - 在两个不同的 fixture 上运行相同的测试

我有一个测试目前使用这样的单个fixture运行:@pytest.fixture()deffoo():return'foo'deftest_something(foo):#assertsomethingaboutfoo现在我正在创建一个稍微不同的fixture,比方说@pytest.fixturedefbar():return'bar'我需要针对第二个fixture重复完全相同的测试。如果不复制/粘贴测试并更改参数名称,我该怎么做? 最佳答案 除了测试生成之外,您还可以为动态应用的任意数量的子fixture执行“fixture方式”

python - 优化 Django 测试的 fixture 加载部分的最佳方法是什么?

我的Django测试运行得非常慢,但这不是测试的错。目前,整个过程需要14秒,但其中只有0.1秒用于运行测试。前几秒是创建表和索引,剩下的是应用项目的许多fixture。处理此问题的最佳方法是什么?我认为有一种方法可以指定在每个测试中加载哪些fixtures,但我需要它们中的大多数来完成大多数测试......我认为可行的解决方案是,如果测试在每次运行后都没有删除表,那么就不需要在每次运行测试时都创建和填充数据库。大多数测试甚至不写入数据库。优化Django测试的fixture加载部分的最佳方法是什么?谢谢!(我使用的是nose,除此之外就是普通的Django和sqlite)编辑:我应该

python - 通过自身而不是方法参数的类的 Pytest fixture

我经常会编写一个在每个方法中都使用pytestfixture的测试类。这是一个例子。我希望能够避免必须在每个方法的签名中写下fixture名称。这不是干的。如何才能做到这一点?我希望能够通过将fixture作为测试类的属性来访问fixture。在此示例中,我希望将googlefixture视为TestGoogle的一个属性。这可能吗?frombs4importBeautifulSoupimportpytestimportrequests@pytest.fixture()defgoogle():returnrequests.get("https://www.google.com")cla

python - pytest fixture 总是返回一个函数

我希望能够将一个值从一个fixture返回到多个测试/测试类,但传递的值是一个函数。这是我的代码:importpytest@pytest.fixture()defuser_setup():user={'name':'chad','id':1}returnuser@pytest.mark.usefixtures('user_setup')classTestThings:deftest_user(self):assertuser_setup['name']=='chad'输出是:===================================FAILURES=============

python - 加载 Django fixture : IntegrityError: (1062, "Duplicate entry ' 4' for key ' user_id'") 时出现问题

我使用以下命令生成了2个灯具:./manage.pydumpdata--format=json--indent=4--naturalauth.User>fixtures/user.json./manage.pydumpdata--format=json--indent=4--natural--exclude=contenttypes--exclude=auth>fixtures/full.json我有以下名为user.json的装置:[{"pk":4,"model":"auth.user","fields":{"username":"foo","first_name":"Se\u00e

python - 如何在 pytest 中将几个参数化的 fixture 连接成一个新的 fixture ?

如果我有两个参数化的fixture,我如何创建一个测试函数,首先用一个fixture的实例调用,然后用另一个fixture的实例调用?我想创建一个以某种方式连接两个现有装置的新装置是有意义的。这适用于“普通”灯具,但我似乎无法使用参数化灯具。这是我尝试过的一个简化示例:importpytest@pytest.fixture(params=[1,2,3])deflower(request):return"i"*request.param@pytest.fixture(params=[1,2])defupper(request):return"I"*request.param@pytest

python - 如何使用 fixture 使 pytest 中的异步测试超时?

我正在测试一个可能会死锁的异步函数。我尝试添加一个fixture来限制函数在引发故障之前只运行5秒,但到目前为止它还没有奏效。设置:pipenv--python==3.6pipenvinstallpytest==4.4.1pipenvinstallpytest-asyncio==0.10.0代码:importasyncioimportpytest@pytest.fixturedefmy_fixture():#attempttostartatimerthatwillstopthetestsomehowasyncio.ensure_future(time_limit())yield'egg