如何使用 CMake 定义 C# 单元测试项目?

我正在将一些现有的 C# 项目转换为在 CMake 中定义——从以前的include_external_msproject()指令转移到对 C# 的更新的完全支持。

但我没有看到如何转换该Visual C# Unit Test Project类型的项目。我能够将它们构建为库,并成功编译它们——但 Visual Studio 不会将它们显示为单元测试项目,就像常规库一样。最关键的是,测试资源管理器看不到测试。


我已经尝试过的事情包括:

  • 添加TestProjectType=UnitTest为目标属性:
    <TestProjectType>UnitTest</TestProjectType>

  • 添加引用路径,如下所示,作为目标属性:
    <ReferencePath>$(ProgramFiles)/Common Files/microsoft shared/VSTT/$(VisualStudioVersion)/UITestExtensionPackages</ReferencePath>

  • 添加Microsoft.VisualStudio.QualityTools.UnitTestFramework为项目参考(使用 CMake 的VS_DOTNET_REFERENCES属性)。

我正在使用 Microsoft Visual Studio Professional 2015、CMake 3.13.2、.NET Framework 4.5.2(但我怀疑该问题并非特定于我的特定版本组合)。


潇潇雨雨
浏览 95回答 2
2回答

Smart猫小萌

手动添加<TestProjectType>UnitTest</TestProjectType>,使我的单元测试项目显示为单元测试。试图弄清楚如何使用 cmake 做到这一点。更新:以下将项目显示为 unittestset_target_properties(${target_name}PROPERTIESVS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")文档VS_GLOBAL_PROJECT_TYPES在这里。我找到了 Project Guid 的文档:Visual Studio project type guids

慕丝7291255

您还可以将 TestProjectType 添加到全局属性:set_target_properties(${target_name} PROPERTIESVS_GLOBAL_TestProjectType "UnitTest"VS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
打开App,查看更多内容
随时随地看视频慕课网APP