2016-12-27 17 views
12

Tôi gặp khó khăn khi tìm tài liệu cập nhật về cách kiểm tra đơn vị thư viện lớp chuẩn .NET 1.6 (có thể được tham chiếu từ dự án .NET Core).Kiểm tra đơn vị thư viện .NET Standard 1.6

Đây là những gì project.json của tôi trông giống như đối với thư viện của tôi:

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

Bây giờ nhiệm vụ còn lại là để có thể tạo ra một số loại một dự án mà có thể thực hiện kiểm tra đơn vị. Mục tiêu là sử dụng xUnit vì có vẻ như đây là những gì nhóm .NET Core đang thúc đẩy.

tôi đã đi trước và tạo ra một NET dự án thư viện di động mà có một project.json trông như thế này:

{ 
    "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": { 

    } 
    } 
} 

lớp thử nghiệm của tôi trong dự án đó trông như thế này:

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

Khi tôi tiếp tục và xây dựng dự án đó, Test Explorer sẽ không nhìn thấy bất kỳ thử nghiệm nào của tôi.

Tôi làm cách nào để tạo một bài kiểm tra đơn vị có thể kiểm tra thư viện này?

+0

Có ai đã tìm ra điều này trong VS 2017 RTM không? Khi tôi đang cố gắng để kiểm tra một thư viện NetStandard kiểm tra của tôi không thể được tìm thấy. Tôi đang tham khảo phiên bản 2.2 của xunit và xunit.runner.visualstudio. –

Trả lời

5

Tôi hiện đang có một dự án đang hoạt động bằng cách sử dụng xunit 2.1.0 và dotnet-test-xunit 2.2.0-preview2-build1029.

Đây là tôi project.json cho dự án đơn vị kiểm tra:

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

này hoạt động cả trên dòng lệnh (thông qua dotnet test) và trong Visual Studio 2015 thử nghiệm Explorer.

Tôi nghĩ rằng dotnet-test-xunit không được dùng nữa, nhưng tôi không chắc chắn. Tất cả những điều trên có thể sẽ thay đổi sau khi project.json biến mất, nhưng điều này có hiệu lực ngay hôm nay.

+0

Visual Studio 2017 RC yêu cầu thiết lập khác, mà tôi đã thử hôm qua. –

+0

@LexLi Điều cần biết. Tôi chắc chắn tôi sẽ phải tìm ra tất cả điều này một lần nữa khi tôi nâng cấp. :) –

+2

Tôi đã đính kèm thông tin tại đây, https://docs.microsoft.com/en-us/dotnet/articles/core/preview3/tools/dotnet-test Liên kết này (để xem trước SDK 3) sẽ không hoạt động mãi mãi, nhưng Microsoft nên có một phiên bản cập nhật luôn luôn tại https://docs.microsoft.com một nơi nào đó trong tương lai. –

6

tôi thấy vấn đề được đăng trên trang GitHub xUnit ở đây: https://github.com/xunit/xunit/issues/1032

Như Brad Wilson giải thích, NETStandard thư viện phải được kiểm tra với một trong hai thư viện DotNet lõi hoặc một thư viện .Net Framework đầy đủ.

Trong trường hợp của tôi, thư viện thử nghiệm đơn vị của tôi là một thư viện "máy tính để bàn cổ điển" đầy đủ và Trình khám phá kiểm tra có thể chạy thử nghiệm của tôi.