我想将命令行参数传递给py.test以创建fixture。例如,我想将数据库主机名传递给下面的fixture创建,因此它不会被硬编码:importpytestdefpytest_addoption(parser):parser.addoption("--hostname",action="store",default='127.0.0.1',help="specifyIPoftesthost")@pytest.fixture(scope='module')defdb(request):return'CONNECTEDTO['+request.config.getoption('--
我有一些代码如下所示。我在运行时遇到了toofewargs错误。我没有显式调用setup_class,所以不确定如何将任何参数传递给它。我尝试用@classmethod装饰方法,但仍然看到同样的错误。我看到的错误是这样的-ETypeError:setup_class()takesexactly2arguments(1given)有一点需要注意-如果我没有向类传递任何参数,并且只传递cls,那么我看不到错误。非常感谢任何帮助。我确实复习了这些问题question#1和question#2在发布之前。我不明白针对这些问题发布的解决方案,或者它们的工作原理。classA_Helper:def
我想要一个“全局fixture”(在pytest中,它们也可以称为“session范围的fixture”),它可以进行一些昂贵的环境设置,比如通常准备一个资源,然后在测试模块中重复使用。设置是这样的,共享环境.py会有一个固定装置做一些昂贵的事情,比如启动Docker容器、MySQL服务器等。@pytest.yield_fixture(scope="session")deftest_server():start_docker_container(port=TEST_PORT)yieldTEST_PORTstop_docker_container()test_a.py会使用服务器,def
我已经安装了pytestframework.我可以使用以下命令运行测试用例。py.test-qtest_class.py如何使用eclipse运行相同的测试? 最佳答案 从eclipseWindow->Preferences-->pydev-->PyUnit-->将Testrunner更改为“Py.testrunner”。右键单击该文件。运行方式-->Python单元测试或者按Ctrl+F9:-它会提示你选择测试 关于python-如何使用eclipse调试或运行pytest脚本?,我们
我在Ubuntu14.04上进行了以下设置:python2.7.6django1.7[虽然我用也是django1.9]pytest-django2.8.0[也用2.9.1测试过]pytest2.7.2[也用2.8.3测试过]和下面的测试代码:importpytestfromdjango.dbimportconnectionimportsettingsfrompollsapp.modelsimportQuestionoriginal_db_name=settings.DATABASES["default"]["NAME"]@pytest.mark.django_dbclassTestEx
我不是在谈论Parameterizingafixture允许fixture针对一组硬编码参数运行多次的功能。我有很多测试遵循如下模式:httpcode=401#thisisdifferentpercallmessage='somemessage'#thisisdifferentpercallurl='someurl'#thisisdifferentpercallmock_req=mock.MagicMock(spec_set=urllib2.Request)withmock.patch('package.module.urllib2.urlopen',autospec=True)asm
我正在使用fixture测试Pylons应用程序,但我偶然发现了一个问题。假设我有这样的数据集:classCompanyData(DataSet):classtest_company:company_full_name=u'FirmaTęst'company_short_name=u'TęstCo'classUserData(DataSet):classtest_user:user_login='testuser'user_password='test'company=CompanyData.test_company现在的问题是,当我在功能测试中使用此数据时(如http://farmd
我想在相同参数化测试的不同实例化之间共享fixture,其中fixture本身也被参数化:#!/usr/bin/py.test-svimportpytestnumbers_for_fixture=[0]defpytest_generate_tests(metafunc):if"config_field"inmetafunc.fixturenames:metafunc.parametrize("config_field",[1],scope='session')@pytest.fixture(scope='session')deffixture_1(config_field):numbe
我有一个名为n_groups的fixture,我想在某些情况下对其进行参数化,但在其他情况下则不会。这样做的原因是因为我的类似MVC的数据模型的结构方式,我在“模型”类中尽可能多地测试,但“Controller”类不需要那么广泛的测试,因为我已经在“模型”中完成。因此,在Controller中运行具有所有参数化的测试是多余的,我想限制测试的数量,从而限制测试时间。目前为了测试我的Controller的初始化,生成了超过18,000个测试,运行需要42分钟!查看Travis-CIoutput.目前,我的解决方法是,#Contentsofconftest.pyimportpytestimp
我试图在单个测试中多次使用参数化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)但是,如果参数