python-3.x - 处理要根据测试用例的通过或失败触发操作的 pytest 用例
问题描述
我正在使用 pytest 运行测试用例;尽管我想收集一些日志并压缩所有内容,但前提是出现故障
我确实编写了收集日志并将其压缩的函数,尽管我找不到为每个失败案例实际触发它的方法。我确实使用@classmethod
装饰器实现了一个解决方案setUpClass
and tearDownClass
; 但这仅在所有测试都运行后才会发生,而不是在特定测试失败时发生。
在每个测试中,我运行一个简单的assertFalse(a < b, "the test did fail"
. 我想仅在实际触发该条件时触发执行日志收集的功能。
解决方案
似乎声明中没有直接的方法可以做到这一点assert
,或者我无法找到一种方法。
我只是使用了 try-catch 并在try
我引发了一个异常中,在 catch 代码中我调用了该函数。不确定这是否是最好的方法,但它适用于我的情况
try:
if (a < b):
raise ValueError ("wrong output, collecting logs")
except ValueError:
# call function to parse logs
self.parseoutputonerror(a, b, "/tmp/out.zip")
推荐阅读
- python - Python 的 StaleElementException
- python - 使用 boto3 和 ftplib 将文件从 FTP 复制到 S3 存储桶失败,并出现“500 语法错误,命令无法识别”
- shell - Shell命令在jenkins管道中不起作用
- javascript - 如何生成随机的经度和纬度?
- excel - 如何使用 VBA 定义单元格中的字符是数字、字母还是特殊字符?
- vue.js - Vuetify v-tabs 显示箭头不可点击
- linq - 不支持表达式。林奇
- python - 在子列表的大树中查找特定值
- karma-jasmine - Angular 11 茉莉花测试 NullInjectorError:没有 HttpClient 的提供者!即使添加了 HttpClientTestingModule
- docker - elasticsearch gke上的错误imagepullbackoff