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

MsTest项目:如何引用外部单元测试DLL并同时运行双方测试?

如何在当前解决方案中同时运行外部单元测试DLL的测试

方法一:直接引用测试DLL(快速实现)

  • 右键当前解决方案的测试项目 → 「添加」→「引用」
  • 切换到「浏览」标签,找到共享解决方案输出的单元测试DLL(一般在bin/Debug或bin/Release目录),添加引用
  • 检查共享测试DLL的依赖项(比如共享对象的DLL),确保这些文件能被当前测试项目访问:要么把依赖DLL复制到当前项目输出目录,要么在引用属性里把「复制本地」设为True

方法二:添加项目引用(长期维护推荐)

如果共享解决方案和当前应用在同一代码仓库下,优先用这种方式:

  • 右键当前解决方案 → 「添加」→「现有项目」
  • 找到共享解决方案里的单元测试项目文件(.csproj/.vbproj),添加到当前解决方案中
  • 右键自己的测试项目 → 「添加」→「项目引用」,勾选刚添加的共享测试项目
  • 后续共享测试更新时,当前解决方案会自动编译最新版本,不用手动复制DLL

配置测试运行器识别外部测试

主流测试框架(xUnit、NUnit、MSTest)的运行器默认会扫描引用的测试DLL,但如果测试没显示,可按以下方式配置:

xUnit

  • 在当前测试项目根目录新建或修改xunit.runner.json:
{
  "shadowCopy": true,
  "include": [
    "**/Shared.Test.dll"  // 替换成你的共享测试DLL文件名
  ]
}

NUnit

  • 编辑当前测试项目的NUnit.TestAdapter.dll.config:
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Shared.Test" publicKeyToken="xxx" culture="neutral" />
        <codeBase version="x.x.x.x" href="path/to/Shared.Test.dll" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

MSTest

  • 右键测试项目 → 属性 → 「测试」标签,勾选「启用测试发现和执行」,测试运行器选「MSTest V2」
  • 若仍不识别,新建.runsettings文件:
<RunSettings>
  <TestRunParameters>
    <Parameter name="AdditionalTestAssemblies" value="path/to/Shared.Test.dll" />
  </TestRunParameters>
</RunSettings>

关键注意事项

  • 保证共享测试DLL和当前测试项目用的测试框架版本一致,避免兼容性报错
  • 共享测试依赖的XML数据源,要设置其「复制到输出目录」为「如果较新则复制」,确保当前项目能读取到
  • 运行时选择「运行所有测试」,测试运行器会自动执行当前项目和共享DLL里的全部测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:41:02