# CMake generated Testfile for
# Source directory: C:/Projects/myproject
# Build directory: C:/Projects/myproject/out/build/x86-Debug
#
# This file includes the relevant testing commands required for
# testing this directory and lists subdirectories to be tested as well.
subdirs("test")
下级CTestTestfile.cmake文件内容:
# CMake generated Testfile for
# Source directory: C:/Projects/MyProject/test
# Build directory: C:/Projects/MyProject/out/build/x86-Debug/test
#
# This file includes the relevant testing commands required for
# testing this directory and lists subdirectories to be tested as well.
add_test(Environment.TestCommandLineArgument "C:/Projects/MyProject/out/build/x86-Debug/test/MyProject_test.exe" "--gtest_filter=Environment.TestCommandLineArgument" "--arg1" "C:/Projects/MyProject/test/data/")
set_tests_properties(Environment.TestCommandLineArgument PROPERTIES _BACKTRACE_TRIPLES "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.19/Modules/GoogleTest.cmake;380;add_test;C:/Projects/MyProject/test/CMakeLists.txt;38;gtest_add_tests;C:/Projects/MyProject/test/CMakeLists.txt;0;")
add_test(MyProjectExampleCreatorDevice.TestCreateExampleImage "C:/Projects/MyProject/out/build/x86-Debug/test/MyProject_test.exe" "--gtest_filter=MyProjectExampleCreatorDevice.TestCreateExampleImage" "--arg1" "C:/Projects/MyProject/test/data/")
set_tests_properties(MyProjectExampleCreatorDevice.TestCreateExampleImage PROPERTIES _BACKTRACE_TRIPLES "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.19/Modules/GoogleTest.cmake;380;add_test;C:/Projects/MyProject/test/CMakeLists.txt;38;gtest_add_tests;C:/Projects/MyProject/test/CMakeLists.txt;0;")
...
3条答案
按热度按时间tjjdgumg1#
我遇到了和你一样的问题。我有一个主 CMakeLists.txt,和另外两个 CMakeLists.txt 文件在子目录中:一个用于我正在测试的静态库,一个用于测试项目本身。为了确保测试出现在测试资源管理器中,我不得不将
enable_testing()
从test子目录移动到主 * CMakeLists.txt * 中。然后在test子目录中,我设置GoogleTest环境,并通过以下方式添加test:
最后一行很重要。除了
gtest_add_tests
,你也可以使用add_test
。它需要不同的参数,但当你的目标是在VS2019的测试资源管理器中显示测试用例时,它也可以工作。上述解决方案的作用在于:
当您将
enable_testing()
加入至最上层的CMakeLists.txt档案时,它会在您的建置目录中产生最上层的CTestTestfile.cmake档案。测试总管需要这个档案,以汇总建置程序期间产生的所有测试用例。如果您的程式码结构中有特定的CMake阶层架构,您也应该有类似的CTest阶层架构。我的顶级CTestTestfile.cmake文件内容:
下级CTestTestfile.cmake文件内容:
bf1o4zei2#
对于我来说,使用nuget从www.example.com升级1.8.1.3到1.8.1.4破坏了我的项目。它将Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1. 8.1.3切换到Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.1.8.1.3\build\native\Microsoft.googletest.v140.windesktop.msvcstl.dyn.rt-dyn.targets”
恢复到以前的版本对我来说是有效的。(测试资源管理器现在回来了)我认为只要确保使用静态版本而不是动态版本就可以了。
0wi1tuuw3#
有多个扩展,似乎他们应该使用。如果你遵循https://learn.microsoft.com/en-us/visualstudio/test/how-to-use-google-test-for-cpp?view=vs-2022的建议,你使用TestAdapterForGoogleTest从微软?()有另一个从谷歌。(谷歌测试适配器)。我有一个项目,使用旧版本的gtest。我安装了这个扩展,事情停止工作。卸载它,并重新启动。重建和事情似乎再次工作。