pytest相关内容

pytest中夹具内产量的含义

我阅读了 docs.pytest.org 我不确定语句的含义:yield smtp_connection 能否请人解释一下 yield 的作用,以及它是否是强制性的? 解决方案 首先这不是强制性的!!!Yield execute 测试主体,例如,您可以使用前置条件和后置条件设置测试.为此,我们可以使用 conftest.py: 导入pytest@pytest.fixturedef ..
发布时间:2021-06-25 18:51:47 其他开发

从 pytest 固定装置产生的调用函数

在我的单元测试中,我有两个非常相似的装置,我希望将一些功能分解为某种辅助函数.鉴于我对 yield 如何生成生成器的理解,我认为这不会导致任何问题.my_fixture_with_helper,应该只返回`fixture_helper 产生的生成器. 导入pytestdef fixture_helper():print("从助手初始化...")产量 26print("在帮手后拆解...")@py ..
发布时间:2021-06-25 18:51:45 Python

使用 pytest 生成 csv 文件报告

是否有可能以某种方式在 csv 文件中生成测试执行报告?我使用 python、selenium、pytest.任何建议将不胜感激! 解决方案 我一直在使用 pytest-excel生成xls文件报告. 用法: pip install pytest-excelpytest --excelreport=report.xls 它将生成 report.xls excel 文件. ..
发布时间:2021-06-25 18:51:42 Python

在测试套件的末尾运行缓慢的 Pytest 命令

假设我有以下 pytest 脚本: 导入pytestdef test_one():经过def test_two():经过@pytest.mark.slowdef test_three():经过 是否有一个命令可以用来运行带有 slow 标记的所有测试?我知道我可以使用两个 pytest 命令来做到这一点,但使用一个命令来做到这一点会很棒: pytest -v -m "不慢"# test_ma ..
发布时间:2021-06-25 18:51:36 Python

如何构建包装器 pytest 插件?

我想用以下方式包装pytest-html插件: 添加选项 X 给定选项 X,从报告中删除数据 我能够通过实现 pytest_addoption(parser) 函数来添加选项,但卡在第二件事上...... 我能做的是:实现一个钩子 frmo pytest-html.但是,我必须访问我的选项 X,才能执行该操作.问题是,pytest-html 的钩子没有将“请求"对象作为参数,所 ..
发布时间:2021-06-25 18:51:33 Python

使用 Pytest 的参数化添加对测试功能的描述

当其中一个测试失败时,可以在参数化测试中添加描述,快速了解测试失败的原因. 有时您不知道测试失败的原因(您必须查看代码).有了每个测试的描述,你就知道了. 例如. @pytest.mark.parametrize("num1, num2,expect", [(2, 2, 4), # 这个测试验证 2+2 = 4.])def test_sum(num1, num2, 期望):计算 = ..
发布时间:2021-06-25 18:51:19 Python

如何让 pytest 钩子打印到控制台?

我知道 pytest -s.但是,我想让钩子打印到控制台. 以下对我不起作用: terminal_reporter = request.config.pluginmanager.getplugin("terminalreporter")terminal_reporter.write_line("TEST") 这仍然需要 pytest -s 才能运行.相反,我想规避这一点. 具体来说 ..
发布时间:2021-06-25 18:51:16 Python

在 Django 中测试 Url 是否给出 500 错误

我想测试 Urls 是否出现 500 错误.在不需要登录的正常情况下,我得到 status_code 200 但在需要登录的情况下,它给了我 302 错误.那么,如何才能以最佳方式测试 loginrequired 和参数化 url. 谢谢 所以我添加这个是因为有人将该问题链接到重复但它不是我的答案以及为什么它不是我的答案因为我可以使用此方法登录但我想测试其视图已登录的网址我可以登录但不 ..
发布时间:2021-06-25 18:51:13 Python

如果一项测试失败,pytest 跳过所有内容

如果特定测试失败,跳过所有剩余测试的最佳方法是什么,这里 test_002_wips_online.py 失败,然后进一步运行没有意义: tests/test_001_springboot_monitor.py::TestClass::test_service_monitor[TEST12] PASSED [ 2%]测试/test_002_wips_online.py::TestClass::t ..
发布时间:2021-06-25 18:51:10 Python

对 AssertionError 重复测试

有一个模块 pytest-repeat 可用于重复执行pytest N 次(整个测试套件). 但是,我想在出现 AssertionError 时再次重新运行该特定测试,而不是运行整个套装.那么,如何捕获 AssertionError 并以编程方式调用相同的测试函数? 解决方案 flaky package 提供了一个 @flaky 装饰器.来自文档: @flaky(max_runs= ..
发布时间:2021-06-25 18:51:07 Python

根据 json 文件中的列表 test-data 参数化测试

当测试有不同/多个测试数据的列表时,有没有办法参数化测试? example_test_data.json { "test_one" : [1,2,3], # 就是这种情况,`test_one` 测试需要参数化.“test_two":“分裂",“测试三":{“三":3},“test_four":{“四":4},“test_set_comparison":“1234"} 目录结构: 主 ..
发布时间:2021-06-25 18:51:04 Python

我们可以在 pytest 中的 setup_module() 或 setup_class 中打印命令行参数吗?

我知道如何在 pytest 中传递命令行参数.我想在我的 setup_class() 或 setup_module() 中针对作为命令行参数传递的变量打印或执行一些基本验证. 我可以在测试方法中访问这些变量,但不能在 setup_class 或 setup_module 中访问.这甚至可能吗? 我想做这样的事情... conftest.py def pytest_addopti ..
发布时间:2021-06-25 18:51:01 Python

如何清除多个断言语句之间捕获的标准输出/标准错误

我在循环中有一些断言测试,每个断言有点像单独的测试,我不希望以前的断言输出污染当前失败断言的错误日志. def test_foos(captured):foos = [] # 一些数据对于 foo,foo 中的 bar:捕获.clear()断言逻辑(foo)== bar 我找到了 caplog.clear但它似乎不起作用. 解决方案 参数化你的测试.将 foos 作为参数传递,pyte ..
发布时间:2021-06-25 18:50:56 Python

双参数化

所以我有一组测试,我想测试一个解决方案的多个版本.目前我有 导入pytest导入 product_not_at_indexfunctions_to_test = [product_not_at_index.product_not_at_index_n_squared,product_not_at_index.product_not_at_index,]def run_test(function_ ..
发布时间:2021-06-25 18:50:50 Python

独立的 py.test(忽略 __init__.py 文件)

我有一个简单的 python 模块(我们称之为 M1),它是独立的(唯一的导入是到 collections),在一个包含丑陋的包中.部分丑陋之处在于包的 __init__.py 文件中.但是 M1 很好很干净,并且包含一些与 py.test 一起使用的测试函数. 现在,我想测试M1并忽略所有丑陋.但是 py.test 想要运行 __init__.py -- 有什么办法可以防止这种情况发生?我 ..
发布时间:2021-06-25 18:50:47 Python