C++ googletest读写同一文件失败

C++ googletest读写同一文件失败,c++,opencv,googletest,C++,Opencv,Googletest,我有一些测试用例,它们都会将一些字符串写入“tmp.txt”并读回。而测试将失败。如果我一次只测试一个测试用例,或者将临时文件名从“tmp.txt”更改为一些随机生成的文件名,那么测试将通过。可能的原因是什么?googletest的测试用例是否按顺序运行 TEST(xxxx) { string s = generate_some_string(); string filename = "tmp.txt"; ofstream tmpFile(filename); tmpFile &

我有一些测试用例,它们都会将一些字符串写入“tmp.txt”并读回。而测试将失败。如果我一次只测试一个测试用例,或者将临时文件名从“tmp.txt”更改为一些随机生成的文件名,那么测试将通过。可能的原因是什么?googletest的测试用例是否按顺序运行

TEST(xxxx) {
  string s = generate_some_string();
  string filename = "tmp.txt";
  ofstream tmpFile(filename);
  tmpFile << s;
  tmpFile.close();
  cv::VideoCapture cap(filename);
  // read the content back using cap, and do some check
  remove(filename.c_str());
}
测试(xxxx){
string s=生成一些字符串();
字符串filename=“tmp.txt”;
流tmpFile(文件名);

tmpFile默认情况下,googletest应该按顺序运行测试;尽管有一个测试插件可以并行运行测试,并且visual studio的测试插件也可以配置为并行运行测试


我的怀疑在于
cv::VideoCapture cap(filename);
调用-当调用返回时,或者最晚在调用
remove(filename.c_str())时,您能否验证文件是否确实已关闭

谢谢,我终于发现问题不是因为gtest。其他地方的某个控制器使测试并行。没问题,很抱歉,这无法(直接)帮助。如果您感觉到根本原因(即其他地方的控制器)这是一个并不罕见的设置,请将解决方案作为您自己的答案发布,并接受该答案,以防其他人遇到相同的问题。(如果该问题非常特定于您的设置,并且不太可能发生在其他人身上,则发布该问题的用处较小-即。“将gtest与工具X和我们的专用内部测试工具&runner Y一起使用时……”不太可能在贵公司之外发生)