pytest相关内容
我阅读了 docs.pytest.org 我不确定语句的含义:yield smtp_connection 能否请人解释一下 yield 的作用,以及它是否是强制性的? 解决方案 首先这不是强制性的!!!Yield execute 测试主体,例如,您可以使用前置条件和后置条件设置测试.为此,我们可以使用 conftest.py: 导入pytest@pytest.fixturedef
..
在我的单元测试中,我有两个非常相似的装置,我希望将一些功能分解为某种辅助函数.鉴于我对 yield 如何生成生成器的理解,我认为这不会导致任何问题.my_fixture_with_helper,应该只返回`fixture_helper 产生的生成器. 导入pytestdef fixture_helper():print("从助手初始化...")产量 26print("在帮手后拆解...")@py
..
是否有可能以某种方式在 csv 文件中生成测试执行报告?我使用 python、selenium、pytest.任何建议将不胜感激! 解决方案 我一直在使用 pytest-excel生成xls文件报告. 用法: pip install pytest-excelpytest --excelreport=report.xls 它将生成 report.xls excel 文件.
..
假设我有以下 pytest 脚本: 导入pytestdef test_one():经过def test_two():经过@pytest.mark.slowdef test_three():经过 是否有一个命令可以用来运行带有 slow 标记的所有测试?我知道我可以使用两个 pytest 命令来做到这一点,但使用一个命令来做到这一点会很棒: pytest -v -m "不慢"# test_ma
..
我想用以下方式包装pytest-html插件: 添加选项 X 给定选项 X,从报告中删除数据 我能够通过实现 pytest_addoption(parser) 函数来添加选项,但卡在第二件事上...... 我能做的是:实现一个钩子 frmo pytest-html.但是,我必须访问我的选项 X,才能执行该操作.问题是,pytest-html 的钩子没有将“请求"对象作为参数,所
..
当我使用 @pytest.mark.parametrize("value",values_list) 固定装置运行它们时,我想在运行时动态命名测试.例如: values_list=['apple','tomatoes','potatoes']@pytest.mark.parametrize("value",values_list)def test_xxx(self,value):断言值==值
..
下面是 conftest.py 的片段,它接受命令行参数. conftest.py import sys,json,pytest导入日志def tear_down():logging.info(“所有测试后拆除")def pytest_addoption(解析器):parser.addoption("--a1", action="store", default="default_a1",帮
..
当其中一个测试失败时,可以在参数化测试中添加描述,快速了解测试失败的原因. 有时您不知道测试失败的原因(您必须查看代码).有了每个测试的描述,你就知道了. 例如. @pytest.mark.parametrize("num1, num2,expect", [(2, 2, 4), # 这个测试验证 2+2 = 4.])def test_sum(num1, num2, 期望):计算 =
..
我知道 pytest -s.但是,我想让钩子打印到控制台. 以下对我不起作用: terminal_reporter = request.config.pluginmanager.getplugin("terminalreporter")terminal_reporter.write_line("TEST") 这仍然需要 pytest -s 才能运行.相反,我想规避这一点. 具体来说
..
我想测试 Urls 是否出现 500 错误.在不需要登录的正常情况下,我得到 status_code 200 但在需要登录的情况下,它给了我 302 错误.那么,如何才能以最佳方式测试 loginrequired 和参数化 url. 谢谢 所以我添加这个是因为有人将该问题链接到重复但它不是我的答案以及为什么它不是我的答案因为我可以使用此方法登录但我想测试其视图已登录的网址我可以登录但不
..
如果特定测试失败,跳过所有剩余测试的最佳方法是什么,这里 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
..
有一个模块 pytest-repeat 可用于重复执行pytest N 次(整个测试套件). 但是,我想在出现 AssertionError 时再次重新运行该特定测试,而不是运行整个套装.那么,如何捕获 AssertionError 并以编程方式调用相同的测试函数? 解决方案 flaky package 提供了一个 @flaky 装饰器.来自文档: @flaky(max_runs=
..
当测试有不同/多个测试数据的列表时,有没有办法参数化测试? example_test_data.json { "test_one" : [1,2,3], # 就是这种情况,`test_one` 测试需要参数化.“test_two":“分裂",“测试三":{“三":3},“test_four":{“四":4},“test_set_comparison":“1234"} 目录结构: 主
..
我知道如何在 pytest 中传递命令行参数.我想在我的 setup_class() 或 setup_module() 中针对作为命令行参数传递的变量打印或执行一些基本验证. 我可以在测试方法中访问这些变量,但不能在 setup_class 或 setup_module 中访问.这甚至可能吗? 我想做这样的事情... conftest.py def pytest_addopti
..
我正在尝试编写基于 py.test 的测试用例.我的 test.py 是 !flask/bin/python导入pytest导入配置@pytest.fixture定义应用程序(请求):SQLALCHEMY_DATABASE_URI = 'postgresql://sanjeev:sanjeev@localhost:5432/app'配置[SQLALCHEMY_DATABASE_URI]db.cr
..
我在循环中有一些断言测试,每个断言有点像单独的测试,我不希望以前的断言输出污染当前失败断言的错误日志. def test_foos(captured):foos = [] # 一些数据对于 foo,foo 中的 bar:捕获.clear()断言逻辑(foo)== bar 我找到了 caplog.clear但它似乎不起作用. 解决方案 参数化你的测试.将 foos 作为参数传递,pyte
..
我需要在测试用例中伪造 sys.stdout.istty() 的返回值.使用 monkeypatch.setattr("sys.stdout.isatty", lambda: True) 进行 Monkeypatching 是没有选择的,因为它在使用选项 -s 时与 pytest stdout 捕获冲突.如何在测试用例级别进行伪造? 解决方案 Python 不允许对内置类型(如文件..sy
..
所以我有一组测试,我想测试一个解决方案的多个版本.目前我有 导入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_
..
我有一个简单的 python 模块(我们称之为 M1),它是独立的(唯一的导入是到 collections),在一个包含丑陋的包中.部分丑陋之处在于包的 __init__.py 文件中.但是 M1 很好很干净,并且包含一些与 py.test 一起使用的测试函数. 现在,我想测试M1并忽略所有丑陋.但是 py.test 想要运行 __init__.py -- 有什么办法可以防止这种情况发生?我
..
我目前使用 pytest_addoption 来运行我的 API 测试,所以测试应该针对用户在命令行上使用的环境运行.在我的测试文件中,我试图将 UsersSupport 类实例化一次,传递 env 参数.我的代码: conftest.py 导入pytest# 环境QA1 = 'https://qa1.company.com'本地主机 = 'https://localhost'def py
..