Questions tagged «pytest»

使用Python进行简单而强大的无样板测试。对于标有pytest的问题,还请添加python标签。

8
如何告诉py.test跳过某些目录?
我试图使用norecursedirssetup.cfg中的选项来告诉py.test不要从某些目录中收集测试,但是似乎确实忽略了它。 [tool:pytest] norecursedirs=lib/third 当我运行时,py.test我确实看到它如何从内部进行测试lib/third!

2
在pytest测试中记录
我想在测试函数中放入一些日志记录语句,以检查一些状态变量。 我有以下代码片段: import pytest,os import logging logging.basicConfig(level=logging.DEBUG) mylogger = logging.getLogger() ############################################################################# def setup_module(module): ''' Setup for the entire module ''' mylogger.info('Inside Setup') # Do the actual setup stuff here pass def setup_function(func): ''' Setup for test functions ''' if func == test_one: mylogger.info(' Hurray !!') def test_one(): ''' Test One …
90 python  logging  pytest 

6
如何使用pytest禁用测试?
假设我有很多测试: def test_func_one(): ... def test_func_two(): ... def test_func_three(): ... 是否可以在功能中添加装饰器或类似内容以防止pytest仅运行该测试?结果可能看起来像... @pytest.disable() def test_func_one(): ... def test_func_two(): ... def test_func_three(): ...
86 python  testing  pytest 

1
鼻子vs pytest-我应该选择哪一个(主观)差异?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我已经开始处理一个相当大的(多线程)Python项目,其中包含(单元)测试的负载。那里最重要的问题是,运行应用程序需要预设的环境,该环境由上下文管理器实现。到目前为止,我们利用了补丁版本的单元测试运行器,它将在此管理器中运行测试,但是不允许在不同的测试模块之间切换上下文。 鼻子和pytest都支持这种东西,因为它们支持多种粒度的夹具,因此我们正在考虑切换到鼻子或pytest。这两个库都将支持“标记”测试,并且仅运行这些标记的子集,这也是我们也想做的事情。 我一直在浏览一下鼻子和pytest的文档,据我所知,这些库的大部分基本上支持相同的功能,只是它的名称可能不同,或者需要稍微不同的语法。另外,我注意到可用插件中的一些细微差异(鼻子具有多进程支持,例如pytest似乎没有) 看起来,细节决定了魔鬼,这(通常至少)意味着个人品味,我们最好选择最适合我们个人品味的图书馆。 因此,我想提出一个主观的论证,为什么我应该选择鼻子或pytest才能选择最适合我们需求的库/社区组合。
85 python  pytest  nose 

3
如何使用pytest检查不会引发错误
假设我们有这样的东西: import py, pytest ERROR1 = ' --- Error : value < 5! ---' ERROR2 = ' --- Error : value > 10! ---' class MyError(Exception): def __init__(self, m): self.m = m def __str__(self): return self.m def foo(i): if i < 5: raise MyError(ERROR1) elif i > 10: raise MyError(ERROR2) …
83 python  pytest  raise 

3
如何在pytest下测试单个文件
您如何在pytest中测试单个文件?我只能在文档中找到忽略选项,而没有“仅测试此文件”选项。 最好是在命令行而不是上运行setup.cfg,因为我想在ide中运行不同的文件测试。整个套件花费的时间太长。
81 python  pytest 

7
如何从“ python setup.py测试”运行unittest发现?
我试图弄清楚如何python setup.py test运行python -m unittest discover。我不想使用run_tests.py脚本,也不想使用任何外部测试工具(例如nose或py.test)。如果解决方案仅适用于python 2.7,就可以了。 在中setup.py,我想我需要在config的test_suiteand和/或test_loader字段中添加一些内容,但是我似乎找不到能正常工作的组合: config = { 'name': name, 'version': version, 'url': url, 'test_suite': '???', 'test_loader': '???', } 只能使用unittestpython 2.7内置的功能吗? 仅供参考,我的项目结构如下: project/ package/ __init__.py module.py tests/ __init__.py test_module.py run_tests.py <- I want to delete this setup.py 更新:这可能与unittest2但我想只使用unittest 来自https://pypi.python.org/pypi/unittest2 unittest2包括一个非常基本的setuptools兼容测试收集器。在setup.py中指定test_suite ='unittest2.collector'。这将从包含setup.py的目录中的默认参数开始测试发现,因此,它可能是最有用的示例(请参阅unittest2 / collector.py)。 目前,我仅使用一个名为的脚本run_tests.py,但希望通过移至仅使用的解决方案来摆脱这种情况python setup.py test。 这是run_tests.py我希望删除的: …

6
运行py.test时出现错误ImportMismatchError
当我在本地运行测试时,它可以正常工作,但是在创建docker并在容器内运行后,我遇到了错误。 /usr/local/lib/python3.5/site-packages/_pytest/config.py:325: in _getconftestmodules return self._path2confmods[path] E KeyError: local('/apis/db/tests') During handling of the above exception, another exception occurred: /usr/local/lib/python3.5/site-packages/_pytest/config.py:356: in _importconftest return self._conftestpath2mod[conftestpath] E KeyError: local('/apis/db/tests/conftest.py') During handling of the above exception, another exception occurred: /usr/local/lib/python3.5/site-packages/_pytest/config.py:362: in _importconftest mod = conftestpath.pyimport() /usr/local/lib/python3.5/site-packages/py/_path/local.py:680: in pyimport raise self.ImportMismatchError(modname, modfile, self) _pytest.config.ConftestImportFailure: ImportMismatchError('conftest', …
72 python  docker  pytest 


3
py.test运行成功后,模块“线程化”中的KeyError
我正在使用py.test运行一组测试。他们通过了。耶皮!但我收到此消息: Exception KeyError: KeyError(4427427920,) in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored 我应该如何追踪其来源?(我不是直接使用线程,而是在使用gevent。)
68 python  gevent  pytest 

3
TypeError:attrib()获得了意外的关键字参数“转换”
在使用CI对CI服务器上的python项目进行自动化测试期间,发生了此错误pytest。我正在使用pytest==4.0.2。这个错误才刚刚开始发生,以前的管道似乎工作正常。 完整错误: File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory lambda p: Path(os.path.abspath(six.text_type(p))) TypeError: attrib() got an unexpected keyword argument 'convert'
55 python  pytest 

4
是否可以在Python中更改PyTest的assert语句行为
我正在使用Python断言语句来匹配实际和预期的行为。我对这些没有控制权,好像有一个错误测试用例中止了一样。我想控制断言错误,并要定义是否要在失败断言时中止测试用例。 我还想添加一些类似的内容,如果存在断言错误,则应该暂停测试用例,并且用户可以随时恢复。 我不知道该怎么做 代码示例,我们在这里使用pytest import pytest def test_abc(): a = 10 assert a == 10, "some error message" Below is my expectation 当assert抛出assertionError时,我应该可以选择暂停测试用例,并且可以调试并稍后恢复。对于暂停和恢复,我将使用tkinter模块。我将做一个断言功能如下 import tkinter import tkinter.messagebox top = tkinter.Tk() def _assertCustom(assert_statement, pause_on_fail = 0): #assert_statement will be something like: assert a == 10, "Some error" #pause_on_fail will be derived …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.