2016-11-01 39 views
0

我在建造一个运行在CLR 4.6.1上的ASP .NET Core项目时非常困难。它使用传统的CLR 4.6.1库,这是一个巨大的问题。因为.NET Core VS工具无法正确构建项目,所以我不得不编写构建脚本来修复它 - 结果是VS无法构建项目的工作版本。使用CLR 4.6.1库进行ASP .NET Core项目的单元测试

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

我试过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%" ] 
    } 
} 
+0

UnitTesting可以正常工作,ASP.NET的核心目标.net> = 4.5,我不知道它有任何问题。也许你可以发布你的project.json(和类库,如果有任何涉及),看看我们是否可以修复你的原始问题 – Tseng

+0

@Tseng“单元测试”你的意思是MS测试,即单元测试框架内置到Visual工作室? – TarkaDaal

+0

是的,但我使用了xunit和在Visual Studio中运行的testrunner。但是你已经提到.NET Core VS Tools有问题,所以你的项目设置可能会有问题 – Tseng

回答

2

我不能提交评论,也因信誉,你尝试过NUnit的测试运行?它作为独立的控制台应用程序提供,并将编译的测试DLL名称作为参数。

+0

感谢您的链接krlzlx,我会在午餐时间给他们阅读。看来我的问题已经被定为答案,所以我希望我能够为提问者充分回答这个问题。 – ColinM

+0

好吧,我陷入了你的陷阱(你的第一行)。做得好。我希望你将来能够为需要帮助的用户提供正确的答案。 – krlzlx

+0

我的“陷阱”是什么? – ColinM

相关问题