草庐IT

test_phoenix

全部标签

python - 如何在 py.test 中显示警告

我刚刚跑了py.test在我的代码上并得到以下输出:==================6passed,2pytest-warningsin40.79seconds=======================但是,我看不到py.test想要警告我什么。如何打开控制台的警告输出?py.test--help为我提供了--strict标志:--strictrunpytestinstrictmode,warningsbecomeerrors.但是我只想查看输出,而不是让我的测试失败。我检查了pytest.org和thisquestion但他们只关心在python中断言警告,而不是显示在命令行

python - 如何针对不同版本的 python 运行 py.test?

是否可以在没有插件(如xdist)或tox的情况下使用不同版本的python运行py.test? 最佳答案 最简单的方法是直接用-m运行pytest模块,例如:python2.6-mpytest请注意,您必须为那个版本的Python安装pytest。此外,您还需要安装用于该版本Python的所有pytest插件。 关于python-如何针对不同版本的python运行py.test?,我们在StackOverflow上找到一个类似的问题: https://sta

python - 应该 pytest 等人。进入 tests_require[] 或 extras_require{testing[]}?

我正在编写一个使用py.test进行测试的python程序,现在一个测试也依赖于numpy。我应该在setup.py的哪个位置添加这些依赖项?目前我的setup.py的相关部分如下所示:[...]'version':'0.0.1','install_requires':[],'tests_require':['pytest'],'cmdclass':{'test':PyTest},'extras_require':{'testing':['pytest'],},[...]有两次pytest感觉已经有些奇怪了,我不确定在哪里添加numpy。 最佳答案

python - 当 py.test 测试失败时,PyCharm 可以进入调试吗

使用py.test运行测试时,有一个--pdb选项可以在失败时输入pdb。在PyCharm中运行相同的测试时,是否有类似的方式进入调试器? 最佳答案 有一个py.test插件,pytest-pycharm,这将在测试发出未捕获的异常时停止PyCharm调试器。 关于python-当py.test测试失败时,PyCharm可以进入调试吗,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

python - Py.test 没有名为 * 的模块

我有这样的文件夹结构App--App--app.py--Docs--Tests--test_app.py在我的test_app.py文件中,我有一行来导入我的应用程序模块。当我在根文件夹上运行py.test时,我收到关于没有名为app的模块的错误。我应该如何配置? 最佳答案 使用Python3并在类似的项目布局中遇到相同的错误,我通过将__init__文件添加到我的tests模块来解决它。$touchtests/__init__.py我不擅长打包和导入,但我认为这有助于pytest确定目标App模块所在的位置。

python - 如何在 py.test 运行中多次重复每个测试?

我想按顺序运行每个选定的py.test项目任意次数。我没有看到任何标准的py.test机制来执行此操作。我尝试在pytest_collection_modifyitems()Hook中执行此操作。我修改了传入的项目列表,以多次指定每个项目。测试项的第一次执行按预期工作,但这似乎给我的代码带来了一些问题。此外,我希望每次运行都有一个唯一的测试项目对象,因为我在各种报告代码中使用id(项目)作为键。不幸的是,我找不到任何py.test代码来复制测试项目,copy.copy()不起作用,并且copy.deepcopy()得到一个异常(exception)。谁能建议一个多次执行测试的策略?

python - 长时间运行的 py.test 在第一次失败时停止

我正在使用pytest,并且测试执行应该一直运行到遇到异常为止。如果测试从未遇到异常,它应该继续运行其余时间或直到我向它发送SIGINT/SIGTERM。是否有一种编程方式告诉pytest在第一次失败时停止运行,而不是在命令行中执行此操作? 最佳答案 pytest-x#stopafterfirstfailurepytest--maxfail=2#stopaftertwofailures见pytestdocumentation. 关于python-长时间运行的py.test在第一次失败时停

python - django user_passes_test 装饰器

如何为基于类的View实现@user_passes_test(lambdau:u.is_superuser)装饰器?我之前将它用于基于函数的View,我有一个解决方法,但感觉不自然。这不应该被dispatch方法覆盖吗? 最佳答案 您在类的dispatch方法上使用@method_decorator:fromdjango.views.genericimportViewfromdjango.utils.decoratorsimportmethod_decoratorfromdjango.contrib.auth.decoratorsi

python - 使用 py.test 覆盖不包括导入

对于Jedi我们想生成我们的testcoverage.有一个relatedquestion在stackoverflow中,但它没有帮助。我们使用py.test作为测试运行器。但是,我们无法将导入和其他“导入”的内容添加到报告中。例如__init__.py总是被报告为未被发现:NameStmtsMissCover--------------------------------------------------jedi/__init__550%[..]很明显,此文件正在导入,因此应报告为已测试。我们开始这样的测试[*]:py.test--covjedi如您所见,我们正在使用pytest-

python - 确保 py.test 在 sys.path 中包含应用程序目录

我有一个项目目录结构如下(我认为这很标准):my_projectsetup.pymypkg__init__.pyfoo.pytestsfunctionaltest_f1.pyunittest_u1.py我正在使用py.test作为我的测试框架,我希望能够在my_project目录中运行py.testtests我的测试。这确实有效,直到我尝试在测试中使用(例如)importmypkg导入我的应用程序代码。那时,我收到错误“没有名为mypkg的模块”。经过一番调查,似乎py.test使用sys.path中的测试文件目录运行测试,但不是运行py.test的目录。为了解决这个问题,我在test