问题标签 [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.

0 投票
2 回答
3923 浏览

python - 需要 py.test 在来自 python 日志模块的日志文件中记录断言错误

需要 py.test 在来自 python 日志记录模块的日志文件中记录断言错误。该测试设置了 python 日志记录模块,并且所有日志都按预期进行。我在整个测试中都使用了断言语句。但是当遇到断言错误时,这些消息不会记录在 python 日志输出中,而是记录在命令控制台中。

有没有办法让 py.test 在测试的日志输出中记录断言错误?

现在错误在命令控制台中,但是如果这些断言错误也被记录为python日志输出的一部分,那么所有的日志消息都被捕获在一个地方,那就太好了。此外,对于长时间运行的测试,在整个测试完成之前我看不到错误,这可能需要很长时间才能等待。如果我能立即看到断言错误,那就太好了,这样我就可以决定采取行动了。

0 投票
3 回答
34653 浏览

python - 不同目录中的测试调用相同时测试发现失败

使用 py.test,在不同目录中调用相同的两个测试会导致 py.test 失败。这是为什么?如何在不重命名所有测试的情况下更改它?

复制做:

0 投票
1 回答
7802 浏览

pytest - pytest:pytest_sessionstart() 和 pytest_sessionfinish() 是有效的钩子吗?

pytest_sessionstart(session)pytest_sessionfinish(session)有效的钩子?开发钩子文档最新钩子文档中没有描述它们

pytest_configure(config)它们和/有什么区别pytest_unconfigure(config)

在文档中说:

pytest_configure(config)在解析命令行选项后调用。并加载了所有插件和初始 conftest 文件。

pytest_unconfigure(config)在退出测试过程之前调用。

会话是一样的,对吧?

谢谢!

0 投票
1 回答
852 浏览

python - py.test 和 norecursedirs 粒度

我有这些目录:

我在 py.test 中添加Tools了选项。正如预期的那样,当 py.test 收集测试时,不会进行探索。但是,两者都不是,这是一个问题,因为我想要这个。norecursedirssetup.cfg./Tools./ook/Tools

知道如何实现这一目标吗?

0 投票
1 回答
1474 浏览

python - pytest:将依赖注入与装饰器一起使用

在工作中,我们在选定的测试函数上使用装饰器@rollback,它将回滚在该测试期间所做的任何数据库更改。

我最近开始在一些用例中使用 pytest 的依赖注入,包括 with@pytest.mark.parametrize(...)pytest_funcarg__XXXhook。不幸的是,这与我们装饰的测试功能相冲突。

我怎样才能使这项工作?

我的第一个想法是使用自定义标记,说@pytest.mark.rollback并做类似的事情:

这样的方法真的可行吗?

0 投票
2 回答
1635 浏览

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。

0 投票
1 回答
1392 浏览

pytest - 我在哪里可以找到通过 py.test 测试捕获的标准输出?

我正在使用 py.test 报告挂钩(pytest_runtest_makereport() 和 pytest_report_teststatus())。

当 py.test 测试失败时,我可以在报告挂钩(在 report.sections[])中找到捕获的标准输出数据。

当 py.test 测试通过时,report.sections[] 列表为空。

我在哪里可以找到通过测试的捕获标准输出?

谢谢。

编辑: 从源代码(_pytest/capture.py)看来,只有在测试未通过时才可用:

0 投票
2 回答
1139 浏览

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 秒内失败 ===========================

0 投票
1 回答
2023 浏览

python - pytest 2.3 中的包范围内的固定装置

在最新版本的 pytest 中,很容易创建函数、类、模块或会话范围的固定装置,如下所示:

这会创建一个固定装置,对于使用它的每个 python 模块,它只会被调用一次。

但是每个 python 包需要调用一次的固定装置呢?(使用nose,可以使用__init__.py包中的setUp/tearDown方法来完成)

0 投票
2 回答
7253 浏览

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。

谢谢