Unit testing Google Mock在与valgrind一起运行时显示出未满足的期望

Unit testing Google Mock在与valgrind一起运行时显示出未满足的期望,unit-testing,googletest,googlemock,Unit Testing,Googletest,Googlemock,在我的项目中,我使用GoogleMock上的Cutie库。当以“典型”方式运行时,一切正常。然而,当运行Valgrind时,一些单元测试失败,表明并非所有的期望都得到了满足。但只有在运行所有测试套件时才会发生这种情况,当运行单个测试(与其他测试一起运行时失败)时,问题不会重现。我已经试着用gdb调试这个问题,看起来模拟函数的行为和预期的一样,但最终GoogleMock显示出预期没有得到满足。这真的很奇怪,我想知道是什么导致了这种奇怪的行为。。。有人遇到过类似的问题吗?听起来像是测试代码和生产代码

在我的项目中,我使用GoogleMock上的Cutie库。当以“典型”方式运行时,一切正常。然而,当运行Valgrind时,一些单元测试失败,表明并非所有的期望都得到了满足。但只有在运行所有测试套件时才会发生这种情况,当运行单个测试(与其他测试一起运行时失败)时,问题不会重现。我已经试着用gdb调试这个问题,看起来模拟函数的行为和预期的一样,但最终GoogleMock显示出预期没有得到满足。这真的很奇怪,我想知道是什么导致了这种奇怪的行为。。。有人遇到过类似的问题吗?

听起来像是测试代码和生产代码之间的多线程和同步问题。Valgrind增加了一些开销,运行测试(可能在多个线程中)也是一种开销,您会突然多调用一次或少调用一次。也许您应该使用
NiceMock
或允许在
EXPECT\u CALL
中进行更多调用来应对这种情况?