gpt4 book ai didi

c++ - GTest 中处理 "warning"情况的最佳方法?

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:34 25 4
gpt4 key购买 nike

使用 GTest,如果测试检测到测试运行没有意义的情况,测试应该做什么?

脑海中浮现的想法:

  1. 通过 GTest 发出警告,该警告将列在运行结束摘要中。但我在框架中什么也没看到,所以不认为它存在。

  2. 重新运行测试/循环运行。但它使用的是测试夹具,它会有在循环中调用或复制 TearDown/SetUp。再一次,我什么也没看到GTest 支持这个;是否有任何类型的Flaky测试支持?

  3. 向标准输出发出警告并希望运行测试的人理解影响。

  4. 只是盲目地忽略这个问题。

此实例的详细信息:我有一个处理并行线程输出排序的函数。单元测试检查线程的某些输出是否乱序。因此,如果检查失败,则测试几乎没有意义。

考虑到输入生成的随机性,我预计偶尔会有失败的检查(<1% 的运行),虽然它不是失败,但如果其他地方发生变化并且检查失败所有然后测试需要修复。

最佳答案

我觉得你的单元测试很糟糕。

单元测试应该是确定性的,但您的单元测试具有随机输入。假设它有 1% 的时间失败。如果失败,如果每次运行时输入都不同,您期望如何调试单元测试?

您应该重写您的单元测试以使其具有确定性。随机输入是不好的,但是预先确定的输入序列,即使它们看起来是随机的也是可以的。试着想出一组好的输入值来测试算法的极端情况。

如果这是不可能的,即使是这样,您也应该确保该算法也在您的集成测试套件中进行了压力测试。

关于c++ - GTest 中处理 "warning"情况的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26470624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com