Microsoft.Testing.Platform 和扩展常见问题解答

本文包含对有关 Microsoft.Testing.Platform 的常见问题的解答。

Microsoft.Testing.Platform.MSBuild

错误 CS8892:由于找到了同步入口点“Program.Main(string[])”,因此不会将方法“TestingPlatformEntryPoint.Main(string[])”用作入口点。

在测试项目中手动定义入口点 (Main) 或从已具有入口点的应用程序引用测试项目会导致与 Microsoft.Testing.Platform 生成的入口点冲突。 若要避免此问题,请执行以下步骤之一:

  • 删除手动定义的入口点,通常是 Main 中的 方法,让测试平台生成一个入口点。

  • 通过设置 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild 属性来禁用入口点的生成。

  • 通过在引用测试项目的项目中设置 Microsoft.Testing.Platform.MSBuild MSBuild 属性来完全禁用 <IsTestingPlatformApplication>false</IsTestingPlatformApplication> 的可传递依赖项。 从非测试项目引用测试项目(例如引用测试应用程序的控制台应用)时,需要这样做。

Microsoft.Testing.Extensions.Fakes

Fakes 错误。无法解析来自 COR_PROFILER_PATH 和 COR_PROFILER 环境变量的探查器路径

如果 Bin 文件夹中不存在所有 Fakes 程序集,则可能会出现此错误。

  • 请确保项目使用 MSTest.SDK 或引用 Microsoft.Testing.Extensions.Fakes
  • 对于 .NET Framework 项目,请避免设置 <PlatformTarget>AnyCPU</PlatformTarget>,因为这样 NuGet 不会将所有文件复制到 bin 文件夹。