如何使用 CMake 定义 C# 单元测试项目?
How do I define a C# Unit Test Project using CMake?
我正在将一些现有的 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(但我怀疑该问题并非特定于我的特定版本组合)。
手动添加 <TestProjectType>UnitTest</TestProjectType>
,使我的单元测试项目显示为单元测试。试图弄清楚如何使用 cmake 来做到这一点。
更新:以下显示项目为unittest
set_target_properties(${target_name}
PROPERTIES
VS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
)
VS_GLOBAL_PROJECT_TYPES
的文档是 here。
我找到了 Project Guid 的文档:Visual Studio project type guids
谢谢@bhardwajs,你的回答对我有帮助。
您还可以将 TestProjectType 添加到全局属性:
set_target_properties(${target_name} PROPERTIES
VS_GLOBAL_TestProjectType "UnitTest"
VS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
我正在将一些现有的 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(但我怀疑该问题并非特定于我的特定版本组合)。
手动添加 <TestProjectType>UnitTest</TestProjectType>
,使我的单元测试项目显示为单元测试。试图弄清楚如何使用 cmake 来做到这一点。
更新:以下显示项目为unittest
set_target_properties(${target_name}
PROPERTIES
VS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
)
VS_GLOBAL_PROJECT_TYPES
的文档是 here。
我找到了 Project Guid 的文档:Visual Studio project type guids
谢谢@bhardwajs,你的回答对我有帮助。
您还可以将 TestProjectType 添加到全局属性:
set_target_properties(${target_name} PROPERTIES
VS_GLOBAL_TestProjectType "UnitTest"
VS_GLOBAL_PROJECT_TYPES "{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")