2016-12-27 84 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框架庫進行測試。

在我來說,我做我的單元測試庫一個完整的「經典桌面」庫和測試資源管理器能夠運行我的測試。