问题标签 [pytest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 需要 py.test 在来自 python 日志模块的日志文件中记录断言错误
需要 py.test 在来自 python 日志记录模块的日志文件中记录断言错误。该测试设置了 python 日志记录模块,并且所有日志都按预期进行。我在整个测试中都使用了断言语句。但是当遇到断言错误时,这些消息不会记录在 python 日志输出中,而是记录在命令控制台中。
有没有办法让 py.test 在测试的日志输出中记录断言错误?
现在错误在命令控制台中,但是如果这些断言错误也被记录为python日志输出的一部分,那么所有的日志消息都被捕获在一个地方,那就太好了。此外,对于长时间运行的测试,在整个测试完成之前我看不到错误,这可能需要很长时间才能等待。如果我能立即看到断言错误,那就太好了,这样我就可以决定采取行动了。
python - 不同目录中的测试调用相同时测试发现失败
使用 py.test,在不同目录中调用相同的两个测试会导致 py.test 失败。这是为什么?如何在不重命名所有测试的情况下更改它?
复制做:
python - py.test 和 norecursedirs 粒度
我有这些目录:
我在 py.test 中添加Tools
了选项。正如预期的那样,当 py.test 收集测试时,不会进行探索。但是,两者都不是,这是一个问题,因为我想要这个。norecursedirs
setup.cfg
./Tools
./ook/Tools
知道如何实现这一目标吗?
python - pytest:将依赖注入与装饰器一起使用
在工作中,我们在选定的测试函数上使用装饰器@rollback
,它将回滚在该测试期间所做的任何数据库更改。
我最近开始在一些用例中使用 pytest 的依赖注入,包括 with@pytest.mark.parametrize(...)
和pytest_funcarg__XXX
hook。不幸的是,这与我们装饰的测试功能相冲突。
我怎样才能使这项工作?
我的第一个想法是使用自定义标记,说@pytest.mark.rollback
并做类似的事情:
这样的方法真的可行吗?
python - 如何安装 py.test-2.3?
我知道这听起来很奇怪,但我无法理解。在这里(http://pytest.org/dev/getting-started.html)它说一个简单的pip install pytest
工作,但只安装 pytest-2.2.4
我试图pypi.python.org
直接找到它,但我得到的只是 pytest-2.2.4 (http://pypi.python.org/pypi/pytest)
几次谷歌搜索没有产生任何结果,除了似乎每个人都设法得到它,除了我。
在 Mac 上使用 Python27。
pytest - 我在哪里可以找到通过 py.test 测试捕获的标准输出?
我正在使用 py.test 报告挂钩(pytest_runtest_makereport() 和 pytest_report_teststatus())。
当 py.test 测试失败时,我可以在报告挂钩(在 report.sections[])中找到捕获的标准输出数据。
当 py.test 测试通过时,report.sections[] 列表为空。
我在哪里可以找到通过测试的捕获标准输出?
谢谢。
编辑: 从源代码(_pytest/capture.py)看来,只有在测试未通过时才可用:
jython - 将 pytest 与 Jython 一起使用
我正在尝试在 Jython 上使用 pytest。我一开始就被卡住了。
我已经使用 easy_install 成功安装了 pytest 包:
当我尝试从此页面运行示例时,出现问题。我收到了一份非常长的故障报告,如下所示。有人知道为什么会这样吗?
py.test-jython
============================= 测试开始================== ============ 平台 java1.6.0_37 -- Python 2.5.3 -- pytest-2.3.2 收集到 1 项
test_sample.py F
==================================== 失败============== ===================== _ __ _ __ _ __ _ __ _ __ _ _ test_answer _ __ _ __ _ __ _ __ _ __ _ __
test_sample.py:5:
自我 = 断言错误()
../jython2.5.3/Lib/site-packages/pytest-2.3.2-py2.5.egg/_pytest/assertion/reinterpret.py:32:
源 = 'assert func(3) == 5', frame = should_fail = True
../jython2.5.3/Lib/site-packages/pytest-2.3.2-py2.5.egg/_pytest/assertion/newinterpret.py:49:
. . .
self = <_pytest.assertion.newinterpret.DebugInterpreter object at 0x4> name = Name
../jython2.5.3/Lib/site-packages/pytest-2.3.2-py2.5.egg/_pytest/assertion/newinterpret.py:147:
self = <_pytest.assertion.newinterpret.DebugInterpreter object at 0x4> node = Name
E AssertionError: 无法处理名称
../jython2.5.3/Lib/site-packages/pytest-2.3.2-py2.5.egg/_pytest/assertion/newinterpret.py:134: AssertionError ============= ============= 1 在 0.55 秒内失败 ===========================
python - pytest 2.3 中的包范围内的固定装置
在最新版本的 pytest 中,很容易创建函数、类、模块或会话范围的固定装置,如下所示:
这会创建一个固定装置,对于使用它的每个 python 模块,它只会被调用一次。
但是每个 python 包需要调用一次的固定装置呢?(使用nose,可以使用__init__.py
包中的setUp/tearDown方法来完成)
python - 无法让 pytest 了解设置中的命令行参数
所以我一直试图让 pytest 根据一些命令行参数在不同的环境中运行 selenium 测试。但它一直抛出这个错误:
似乎理解setup_class
需要 2 个参数,但host
没有被传递。这是代码setup_class
:
这是 conftest.py 文件:
奇怪的是,host
函数正在看到它(所以如果我创建一个 test_function 并将主机作为参数传递,它就可以了),只是setup
固定装置不起作用。
我环顾四周,发现了这个,pytest - 在 setup_module 中使用 funcargs但这似乎不起作用(自 2.3.3 以来它已经过时了。
有谁知道我做错了什么?使用 py.test 2.3.2。
谢谢