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编写集成测试,以及如何重复集成测试


- python-m http.server 443--使用SSL? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 沿轴计算直方图 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12