我想用Google测试框架测试我的C ++项目。我使用Visual Studio 2017,并且安装了ReSharper c ++。 另外我想用subversion。 我创建了一个只有一个Google Test项目的解决方案。我根据以下文章进行了所有操作: https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-google-test-for-cpp?view=vs-2017 到目前为止一切正常。 Visual Studio和ReSharper都可以找到测试并可以按预期运行。它还会找到TEST宏以及ASSERT_和EXPECT_宏。
我不希望包和.vs文件夹处于颠覆状态。因此,我只检查以下文件:.sln,.vcxproj,.vcxproj.user,pch.h,pch.cpp,packages.config和test.cpp以及文件夹。
如果我在另一个目录中签出,则解决方案构建就很好。 Google测试包会按预期下载,并生成一个新的.vs文件夹。但是问题是,TEST宏不再被识别为宏。将其标记为红色,将鼠标悬停在其上时,会收到“功能'测试'必须具有返回类型”消息,并且EXPECT_宏也为红色,并且会出现“无法解析符号'EXPECT_EQ'”消息。此时,ReSharper不再找到任何测试。但是Visual Studio测试资源管理器可以!我什至可以从测试浏览器中运行它,并获得绿色测试。
在这一点上,我认为Resharper可能有问题,因此将其关闭。这确实仅用一个测试项目就解决了小型解决方案中的问题。在建立并重新打开Visual Studio之后,一切又恢复了。因此,我在我正在开发的更大的解决方案中实现了它,但是即使在构建解决方案并重新打开Visual Studio之后,仍然无法识别宏!我可以从测试资源管理器构建并运行测试,将鼠标悬停在TEST宏上会显示一条略有不同的消息:“缺少显式类型(假定为'int')”,然后将鼠标悬停在EXPECT_EQ宏上会显示“ identifier'EXPECT_EQ”未定义”。
有人知道为什么工作室不再能够识别Macros以及我该如何解决吗?