copy by https://testerhome.com/topics/34244#reply-219133😉😉😉
使用 pytest 框架
除了 unittest 框架断言方法外,较为流行的 pytest 框架也提供了内置的断言方法,下面让我们来研究一下,使用 pytest 框架实现的解决方案。
pytest 框架中有内置的 assert 断言方法 assert 断言方法可以实现结果的校验,案例代码如下:
执行结果如下:
①. 当(x, y)=(1,1)时断言 3 失败;
②. 当(x, y)=(1,0)时断言 1 失败,断言 2 和断言 3 不执行;
由此可以看出 assert 方法一旦遇到断言失败则停下,无法实现一个方法中多个断言同时执行的需求。
使用 pytest 框架 pytest-assume 插件 pytest-assume 插件可以解决原生 assert 断言方法存在的问题,案例代码如下:
执行结果如下:
①. 当(x, y)=(1,1)时断言 3 失败;
②. 当(x, y)=(1,0)时断言 1 失败,断言 2 和断言 3 继续执行;
由此可以看出 pytest-assume 插件可以实现单个断言失败的情况,其他断言依然会被执行。
上下文管理器 with pytest-assume 也可通过上下文管理器 with 使用,从执行结果中看出,与以上方法中直接使用 pytest-assume 插件相比,使用上下文管理器的好处是不用 try 和 finally 捕获异常,更加简洁有效。
如上图所示,在使用上下文管理器时需要注意,一个 with 语句只能跟一个 assert 语句。如果一个 with 语句包含多个断言,当前面的断言失败的时候,后面的断言依然不会执行。
总结
以上是指标校验脚本中断言方案探索的过程,以及最终的解决方案和效果,希望本文能为大家解决类似的问题提供一些思路。