You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Visual Studio 2017中C++与C#单元测试共存问题:C++测试未识别

解决Visual Studio中C#与C++单元测试共存的问题

我完全理解你遇到的这个麻烦——刚装的VS 15.7.2本来C++测试好好的,加了C#测试后反而识别不出来了,确实挺闹心的。下面是我亲测有效的几个解决方案,你可以一步步尝试:

1. 检查测试适配器的启用状态

VS里不同语言的测试依赖对应的适配器,大概率是C++测试适配器被意外干扰禁用了:

  • 打开测试菜单 → 测试设置测试适配器管理器
  • 在弹出窗口里,找到C++测试适配器(也可能显示为"Native Test Adapter"),确保它处于勾选启用状态
  • 同时确认**.NET测试适配器**也正常启用,之后重启VS再查看测试识别情况

2. 用runsettings文件区分原生与.NET测试

你提到尝试了runsettings但不知道怎么区分,其实可以通过指定适配器路径和测试过滤规则来实现:
创建或修改你的TestConfig.runsettings文件,加入以下内容:

<RunSettings>
  <TestAdapters>
    <!-- 明确指定C++原生测试适配器路径 -->
    <Path>%VSINSTALLDIR%\Common7\IDE\Extensions\TestPlatform\NativeTestAdapter</Path>
    <!-- 明确指定.NET测试适配器路径 -->
    <Path>%VSINSTALLDIR%\Common7\IDE\Extensions\TestPlatform\DotNetTestAdapter</Path>
  </TestAdapters>
  <RunConfiguration>
    <!-- 可选:如果需要单独跑某类测试,可添加过滤规则 -->
    <!-- 比如只跑C++测试时启用:<TestCaseFilter>(TestCategory=CPlusPlus)</TestCaseFilter> -->
  </RunConfiguration>
</RunSettings>

配置完成后:

  • 打开测试菜单 → 测试设置选择测试设置文件,选中这个配置文件
  • 右键解决方案选择清理解决方案,重新生成所有项目,再点击测试资源管理器的刷新按钮

3. 为C++测试项目指定专属运行器

有时候VS会默认用.NET测试运行器去处理C++测试,导致识别失败:

  • 右键你的C++测试项目 → 属性
  • 切换到测试标签页,在测试运行器下拉菜单里选择Native Test Runner
  • 保存设置后重新生成C++测试项目,再刷新测试资源管理器

4. 修复Visual Studio测试组件

如果上面的方法都没用,可能是VS的测试组件安装不完整:

  • 打开Visual Studio Installer,选中你的VS安装实例点击修改
  • 单个组件测试工具分类下,确保勾选了C++测试工具和**.NET测试工具**
  • 点击修改完成组件修复,重启VS后再测试

另外,你提到右键单个C测试文件跑提示"No tests found",可以试试右键C测试项目选择运行测试,单个文件的识别偶尔会有延迟,直接跑项目的成功率更高。

内容的提问来源于stack exchange,提问作者Brian Womack

火山引擎 最新活动