草庐IT

pytest_addoption

全部标签

python - pytest-cache 背后的想法是什么?

pytest-cache它似乎是一种缓存func/args->result对甚至在测试套件运行之间保留它们的工具。这似乎是加快速度的好主意。但是我没有注意到任何提及自动检测功能源代码的更改并使相应的缓存条目无效的内容。这似乎违背了运行测试套件的目的,因为经过测试的代码更改不会反射(reflect)出来。 最佳答案 pytest-cache做了两件事:提供一种机制,通过该机制其他插件可以通过config.cache.get|set获取/设置值。例如,pytest-pep8和pytest-flakes使用它来存储上次检查的mtime,以

python - Pytest 适用于旧模拟,但不适用于 unittest.mock

我正在将一些代码从Python2移植到3,而py.test不能很好地与来自unittest.mockpatch装饰器一起玩。当我使用patch装饰器将模拟传递给测试函数的参数时,py.test反而将该参数解释为固定装置,并且无法设置测试。这里有一个人为的例子,希望能说明问题:@patch('my_module.my_func')deftest_my_func(mock_func):mock_func()mock_func.assert_called_once_with()运行py.test后,错误消息如下所示:Efixture'my_func'notfound>availablefix

python - 如何使用 pytest 断言不引发警告

我想确保在一个断言中根本没有警告。在pytestdocumentationaboutwarnings中找不到任何明确的答案.(无效链接,3.2.*文档不再可用)。我已经试过了,我想None可能意味着“没有”:deftest_AttrStr_parse_warnings():"""Check_AttrStr.parse()raisesproperwarningsinpropercases."""withpytest.warns(None):_AttrStr('').parse()但是这个断言也总是正确的,例如,测试不会失败,即使实际上引发了警告:deftest_AttrStr_parse

python - Pytest - 如何将参数传递给 setup_class?

我有一些代码如下所示。我在运行时遇到了toofewargs错误。我没有显式调用setup_class,所以不确定如何将任何参数传递给它。我尝试用@classmethod装饰方法,但仍然看到同样的错误。我看到的错误是这样的-ETypeError:setup_class()takesexactly2arguments(1given)有一点需要注意-如果我没有向类传递任何参数,并且只传递cls,那么我看不到错误。非常感谢任何帮助。我确实复习了这些问题question#1和question#2在发布之前。我不明白针对这些问题发布的解决方案,或者它们的工作原理。classA_Helper:def

python - pytest——如何使用全局/ session 范围的固定装置?

我想要一个“全局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

python - 如何使用 eclipse 调试或运行 pytest 脚本?

我已经安装了pytestframework.我可以使用以下命令运行测试用例。py.test-qtest_class.py如何使用eclipse运行相同的测试? 最佳答案 从eclipseWindow->Preferences-->pydev-->PyUnit-->将Testrunner更改为“Py.testrunner”。右键单击该文件。运行方式-->Python单元测试或者按Ctrl+F9:-它会提示你选择测试 关于python-如何使用eclipse调试或运行pytest脚本?,我们

python - django-pytest setup_method 数据库问题

我在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

python - 有什么方法可以将参数传递到 pytest fixture 中?

我不是在谈论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

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)但是,如果参数