how to write integration tests using pytest and how to repeat the integration tests(如何使用pytest编写集成测试,以及如何重复集成测试)
问题描述
我是新手,所以如果问题不够具体,请不要介意。
我想知道如何将单元测试合并到pytest中的单个集成测试中。 此外,我还想在一个测试会话中多次重复集成测试。请让我知道是否有办法在pytest中做到这一点。
场景: 我有两个单元测试,名为test_start_call和test_end_call,由pytest按此顺序调用。
现在我想重复这个过程几次,所以我这样做了:
对于范围(0,c)内的i: pytest.main(某些命令)这样可以很好地启动测试会话,并在每个测试会话中进行一个调用的情况下尽可能多次地拆卸测试会话。
但是我想在单个测试会话中进行多个调用,并且到目前为止,我还没有找到任何方法来实现这一点,因为在过去的两天里我还没有找到这样做的方法。我尝试查看xdist,但我不想并行启动新进程。集成测试应该在单个测试会话中连续执行单元测试(启动调用和结束调用)任意次数。
我被卡住了。所以任何帮助都是最好的。谢谢!
推荐答案
审阅https://docs.pytest.org/en/latest/parametrize.html
然后将MULT标记添加到每个测试,并在挂钩pytest_GENERATE_TESTS中使用它以提供多个测试,固定值将在--Collect-Only--MULT 3中可见。以此方式使用MARKER将多个测试机制约束为仅标记的测试。
# conftest
def pytest_addoptions(parser):
parser.addoption('--mult', default=0, help="run many tests")
def pytest_generate_tests(metafunc):
count = int(metafunc.config.getoption('--mult'))
if count and metafunc.get_closest_marker('mult'):
if 'mult' not in metafunc.fixturenames:
metafunc.fixturenames.append('mult')
metafunc.parametrize("mult", range(count))
# testfoo
@pytest.mark.mult
def test_start_call():
...
这篇关于如何使用pytest编写集成测试,以及如何重复集成测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用pytest编写集成测试,以及如何重复集成测试
基础教程推荐
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
