2016-12-27 86 views
12

我在查找有关如何单元测试.NET标准1.6类库(可从.NET Core项目引用)的最新文档时遇到问题。单元测试.NET标准1.6库

这里是我的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": {} 
    } 
} 

现在剩下的任务就是要能够建立某种形式的一个项目,可以做单元测试。目标是使用xUnit,因为它似乎是.NET Core团队推动的。

我说干就干,创建一个具有project.json看起来像这样其他.NET移植的库项目:

{ 
    "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); 
     } 
    } 
} 

当我继续构建该项目时,测试浏览器没有看到我的任何测试。

我该如何着手创建一个能够测试这个库的单元测试?

+0

有没有人在VS 2017 RTM中发现这一点?当我试图测试NetStandard库时,我的测试无法找到。我引用了xunit和xunit.runner.visualstudio的2.2版本。 –

回答

5

我当前使用的xUnit 2.1.0和DOTNET试验的xUnit 2.2.0-preview2-build1029一个工作项目。

这是我project.json的单元测试项目:

{ 
    "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消失之后,上述所有可能都会发生变化,但是今天仍然有效。

+0

Visual Studio 2017 RC确实需要一个不同的设置,我昨天尝试过。 –

+0

@LexLi很高兴知道。我确信当升级时我必须再次弄清楚这一切。 :) –

+2

我附加信息在这里,https://docs.microsoft.com/en-us/dotnet/articles/core/preview3/tools/dotnet-test这个链接(用于SDK预览3)不会永远工作,但微软应该在将来的某个地方通过https://docs.microsoft.com提供更新版本。 –

6

我发现张贴的xUnit的GitHub的页面在这里的问题:https://github.com/xunit/xunit/issues/1032

布拉德·威尔逊解释说,NETStandard库必须与无论是DOTNET核心库或完整的.NET框架库进行测试。

在我来说,我做我的单元测试库一个完整的“经典桌面”库和测试资源管理器能够运行我的测试。