unit testing.NET Standard 1.6库

我无法找到有关如何对.NET Standard 1.6类库(可以从.NET Core项目中引用)进行unit testing的最新文档。

这是我的project.json对我的库来说的样子:

 { "supports": {}, "dependencies": { "Microsoft.NETCore.Portable.Compatibility": "1.0.1", "NETStandard.Library": "1.6.0", "Portable.BouncyCastle": "1.8.1.2" }, "frameworks": { "netstandard1.6": {} } } 

现在剩下的任务是能够创建某种可以进行unit testing的项目。 目标是使用xUnit,因为这似乎是.NET Core团队正在推动的。

我继续创建了另一个.NET Portable库项目,该项目有一个如下所示的project.json:

 { "supports": {}, "dependencies": { "Microsoft.NETCore.Portable.Compatibility": "1.0.1", "NETStandard.Library": "1.6.0", "xunit": "2.2.0-beta4-build3444", "xunit.runner.visualstudio": "2.1.0" }, "frameworks": { "netstandard1.6": { } } } 

我在该项目中的测试类如下所示:

 using USB.EnterpriseAutomation.Security.DotNetCore; using Xunit; namespace Security.DotNetCore.Test { public class AesEncryptionHelperTests { [Fact] public void AesEncryptDecrypt() { var input = "Hello world!"; var encrypted = AesEncryptionHelper.AesEncrypt(input); var decrypted = AesEncryptionHelper.AesDecrypt(encrypted); Assert.Equal(input, decrypted); } } } 

当我继续构建该项目时,测试资源管理器没有看到我的任何测试。

如何创建能够测试此库的unit testing?

我目前有一个使用xunit 2.1.0和dotnet-test-xunit 2.2.0-preview2-build1029的工作项目。

这是我的project.jsonunit testing项目:

 { "dependencies": { "dotnet-test-xunit": "2.2.0-preview2-build1029", "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }, "MyProject.Library": { "target": "project", }, "xunit": "2.1.0" }, "description": "Unit tests", "frameworks": { "netcoreapp1.0": { "imports": "dotnet" } }, "testRunner": "xunit" } 

这适用于命令行(通过dotnet test )和Visual Studio 2015测试资源管理器。

我认为dotnet-test-xunit已被弃用,但我不确定。 在project.json消失之后,上述所有内容都可能会发生变化,但今天仍有效。

我在xUnit的GitHub页面上发现了这个问题: https : //github.com/xunit/xunit/issues/1032

正如Brad Wilson解释的那样,NETStandard库必须使用dotnet核心库或完整的.Net Framework库进行测试。

在我的情况下,我使我的unit testing库成为一个完整的“经典桌面”库,测试资源管理器能够运行我的测试。