使用CLR 4.6.1库对asp.net Core项目进行单元测试

本文关键字:项目 Core 单元测试 net asp CLR 库对 使用 | 更新日期: 2023-09-27 18:15:50

我正在构建一个运行在CLR 4.6.1上的asp.net Core项目。它使用遗留的CLR 4.6.1库,这是一个很大的问题。因为。net Core VS工具不能正确地构建项目,我不得不编写构建脚本来修复它-结果是VS无法构建项目的工作版本。

考虑到这一点,我如何对其进行单元测试?理想情况下,我想要一个可以加载预编译项目的独立测试运行器,以避免测试工具不得不构建我的主项目。

我已经尝试了MSTest(它无法看到对SUT的引用)和Xunit使用dotnet test(它试图构建项目)。

按要求,我的(稍微消毒过的)project.json:

{
  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "System.Configuration.Abstractions": "1.0.0"
  },
  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },
  "frameworks": {
    "net461": {
      "dependencies": {
        "MyLib.Common": {
          "target": "project"
        },
        "MyLib.Integration": {
          "target": "project"
        },
        "MyLib.Functions": {
          "target": "project"
        },
        "MyLib.Numbers": {
          "target": "project"
        }
      }
    }
  },
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },
  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },
  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

使用CLR 4.6.1库对asp.net Core项目进行单元测试

由于声誉问题,我无法提交评论,您尝试过NUnit Test Runner吗?它是一个独立的控制台应用程序,并将编译的测试DLL名称作为参数。