vstest 未获取 googletest 可执行文件中的单元测试

Posted

技术标签:

【中文标题】vstest 未获取 googletest 可执行文件中的单元测试【英文标题】:unit tests in googletest executable not picked up by vstest 【发布时间】:2018-07-19 14:28:57 【问题描述】:

我有一个(本机 C++)可执行文件 (test_descriptions.exe),其中包含一些 googletests (1.7)。只需运行可执行文件就可以正常工作,并且可以很好地通过测试。现在我想在 TFS 中使用 vstest 自动运行这些测试。

不幸的是,在我的可执行文件上应用 vstest 会出现以下错误:

C:\project>"C:\Program Files BLABLA \vstest.console.exe" test_descriptions.exe /platform:x64

Warning: Using Isolation mode to run tests as required by effective Platform:X64 and .Net Framework:Framework45 settings for test run. Use the /inIsolation parameter to suppress this warning.
Warning: No test is available in test_descriptions.exe. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.

有什么想法吗?是否有更好的方法在 TFS 中运行这些测试(我考虑过只构建 RUN_TESTS 项目并让 cmake 的 ctest 完成工作)

编辑:我也尝试添加/UseVsixEntensions:true,结果相同。

【问题讨论】:

【参考方案1】:

原来对 Google 测试适配器的引用丢失了。 /UseVxisEntensions:true 已弃用,现在应该使用 \TestAdapterPath: 设置 Google 测试适配器的 DLL 的位置

【讨论】:

以上是关于vstest 未获取 googletest 可执行文件中的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

VSTest.Console.exe的测试运行结果未与测试计划关联

Specflow - 在 Azure 管道中执行多个测试项目,但 vstests 失败

运行 vstest.console.exe 时如何过滤 NUnit 测试

如何从批处理文件中调用VSTEST.CONSOLE.EXE

CMake + GoogleTest在小型库的集合中给出重新定义错误[重复]

[QtCratot]_0_0_googletest单元测试