我试图在单个测试中多次使用参数化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)但是,如果参数
我正在测试我的应用程序,我遇到了一个问题,我不确定为什么。我正在为我的测试加载固定装置,这些固定装置具有相互依赖的外键。它们必须按特定顺序加载,否则将无法工作。我正在加载的固定装置是:["test_company_data","test_rate_index",'test_rate_description']公司数据是第一个。test_rate_index有一个公司的外键,test_rate_description有一个在test_rate_index中声明的模型的外键。(顺便说一句,不同的测试需要不同的固定装置,这就是为什么我不只是将所有东西都推到一个)如果我使用Django的标准程
我正在使用pytest-mozwebqa插件来运行一些selenium测试。我只想为所有测试登录一次应用程序,所以我尝试在conftest.py中使用session范围的fixture,但出现以下错误。我如何编写此登录装置,以便每个测试都不需要登录,并且所有测试都可以使用一次登录?这是我遇到的错误:=================================================================================================ERRORS===========================================
我有一个测试目前使用这样的单个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)编辑:我应该
我正在尝试使用py.test的fixtures在我的单元测试中,结合unittest。我在项目顶层的conftest.py文件中放置了几个固定装置(如here所述),用@pytest.fixture装饰它们,并且将它们的名称作为参数传递给需要它们的测试函数。灯具正确注册,如py.test--fixturestest_stuff.py所示,但是当我运行py.test时,我得到NameError:未定义全局名称“my_fixture”。这似乎只发生在我使用unittest.TestCase的子类时——但是py.test文档似乎说它与unittest配合得很好.当我使用unittest.Te
我经常会编写一个在每个方法中都使用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