You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拉取Git引用项目匹配CPU架构后Moq单元测试消失求助

针对测试项目架构不匹配+测试消失问题的解决方案

我之前也踩过类似的坑,结合实际项目经验,给你几个能快速定位和解决的步骤:

  • 同步测试运行器的架构设置
    很多人只改了测试项目的CPU参数,却忘了调整测试运行器的默认架构。在Visual Studio里,点击顶部菜单的「测试」->「测试设置」->「默认处理器架构」,选择和你测试项目一致的架构(比如你设了AMD64/x64,这里就选x64)。测试运行器如果和项目架构不匹配,会直接找不到测试用例。

  • 检查测试项目的完整生成配置
    右键测试项目→「属性」→「生成」:

    • 确认「平台目标」是和PulledProject完全匹配的(比如AMD64),不要选「Any CPU」;
    • 如果是64位架构,一定要取消勾选「首选32位」选项——这个选项默认可能是勾着的,会导致项目实际以32位运行,和64位的引用项目冲突,进而让测试消失;
    • 顺带检查「条件编译符号」,有没有误加了排除测试代码的符号(比如RELEASE但测试代码只在DEBUG下编译)。
  • 验证引用项目的实际输出架构
    有时候项目属性里写的是MSIL,但实际编译出来的是特定架构。打开VS的开发者命令提示符,导航到PulledProject的输出目录,运行命令:

    dumpbin /headers PulledProject.dll
    

    看输出里的「机器类型」字段,如果显示AMD64,那你的测试项目必须严格设为x64;如果是IL only(MSIL),那测试项目设为Any CPU也可以,但要确保「首选32位」的设置和引用项目一致。

  • 彻底清理解决方案缓存
    常规的「清理解决方案」可能不够彻底,手动删除这些文件夹:

    • 解决方案根目录下的.vs隐藏文件夹;
    • 测试项目和PulledProject的bin、obj文件夹;
      然后关闭VS,重新打开解决方案再构建——旧缓存经常会导致各种诡异的架构匹配问题。
  • 确认引用路径的正确性
    右键测试项目里的PulledProject引用→「属性」,检查「路径」是不是指向当前解决方案中PulledProject的最新输出文件,而不是Git拉取时带的旧dll或者其他第三方路径。如果路径不对,重新添加项目引用(不是直接引用dll)。

  • 检查测试框架的兼容性
    如果你用的是xUnit、NUnit这类第三方测试框架,要确保测试运行器的版本和项目架构匹配:

    • 比如xUnit的xunit.runner.visualstudio NuGet包,要和项目的目标架构兼容;
    • 有些旧版本的测试运行器对64位项目的支持不好,尝试更新到最新稳定版。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:52:33