我有一个测试目前使用这样的单个fixture运行:@pytest.fixture()deffoo():return'foo'deftest_something(foo):#assertsomethingaboutfoo现在我正在创建一个稍微不同的fixture,比方说@pytest.fixturedefbar():return'bar'我需要针对第二个fixture重复完全相同的测试。如果不复制/粘贴测试并更改参数名称,我该怎么做? 最佳答案 除了测试生成之外,您还可以为动态应用的任意数量的子fixture执行“fixture方式”
我的Django测试运行得非常慢,但这不是测试的错。目前,整个过程需要14秒,但其中只有0.1秒用于运行测试。前几秒是创建表和索引,剩下的是应用项目的许多fixture。处理此问题的最佳方法是什么?我认为有一种方法可以指定在每个测试中加载哪些fixtures,但我需要它们中的大多数来完成大多数测试......我认为可行的解决方案是,如果测试在每次运行后都没有删除表,那么就不需要在每次运行测试时都创建和填充数据库。大多数测试甚至不写入数据库。优化Django测试的fixture加载部分的最佳方法是什么?谢谢!(我使用的是nose,除此之外就是普通的Django和sqlite)编辑:我应该
我经常会编写一个在每个方法中都使用pytestfixture的测试类。这是一个例子。我希望能够避免必须在每个方法的签名中写下fixture名称。这不是干的。如何才能做到这一点?我希望能够通过将fixture作为测试类的属性来访问fixture。在此示例中,我希望将googlefixture视为TestGoogle的一个属性。这可能吗?frombs4importBeautifulSoupimportpytestimportrequests@pytest.fixture()defgoogle():returnrequests.get("https://www.google.com")cla
我希望能够将一个值从一个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=============
我使用以下命令生成了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
如果我有两个参数化的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
我正在测试一个可能会死锁的异步函数。我尝试添加一个fixture来限制函数在引发故障之前只运行5秒,但到目前为止它还没有奏效。设置:pipenv--python==3.6pipenvinstallpytest==4.4.1pipenvinstallpytest-asyncio==0.10.0代码:importasyncioimportpytest@pytest.fixturedefmy_fixture():#attempttostartatimerthatwillstopthetestsomehowasyncio.ensure_future(time_limit())yield'egg
我正在检查pytestfixtures,下面看起来很相似,最新的作品也很相似。是的,yield_fixure的可读性更好,但是有人可以让我知道到底有什么区别。在下面提到的情况下,我应该使用哪个?@pytest.fixture()defopen_browser(request):print("Browseropened")defclose_browser():print("browserclosed")request.addfinalizer(close_browser)return"browserobject"@pytest.yield_fixture()defopen_browser
我有两个简单的测试设置,我试图将它们组合在一个fixture中并希望测试函数将“参数”传递给fixture。这是一个人为的例子,用来解释我的问题。假设我有以下pytestfixture:@pytest.fixture(scope="module",params=['param1','param2'])defmyFixture(request):ifrequest.param=='param1':p=5elifrequest.param=='param2':p=10returnp#wouldliketosetrequest.param=['param1']formyFixturedeft
我在使用pyDev运行pytest单元测试时遇到问题。我尝试使用模块共享fixture和应该在最后一次测试后执行的终结器来运行单元测试。但是在pyDev中运行单元测试时,它不使用同一个实例,而是创建两个不同的实例。该示例在控制台中或从pydev中的脚本启动时运行良好。我在Win7上使用平台Python2.7.3、pytest-2.3.4、pyDev2.7.3.2013031601、Eclipse4.2。我尝试了http://pytest.org/latest/fixture.html中的示例pydev的输出是:=============================testsessi