2012-09-27 49 views
7

Tôi đang sử dụng Visual Studio Express 2012 trên Bản xem trước bản phát hành Windows 8 và tôi dường như không thể kiểm tra đơn vị của mình xuất hiện trong trình khám phá thử nghiệm.Kiểm tra đơn vị không xuất hiện

Tôi có một lớp được gọi là TestApp.Entity, và TestApp.EntityTest ...

Đây là mã của tôi:

namespace TestApp.Entity.Test 
{ 
    using System; 
    using System.Net.Http; 
    using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; 
    using TestApp.Domain; 

    [TestClass] 
    public class EntityTests 
    { 
     [TestMethod] 
     public async void TestObject1Deserialize() 
     { 
      Uri agencyUri = new Uri("*removed*"); 
      HttpClient httpClient = new HttpClient(); 
      HttpResponseMessage response = await httpClient.GetAsync(agencyUri); 

      string responseBodyAsText = await response.Content.ReadAsStringAsync(); 
      List<Agency> agencyList = Deserializers.AgencyDeserialize(responseBodyAsText); 

      CollectionAssert.Contains(agencyList, new Agency() { Tag = "*removed*", Title = "*removed*", ShortTitle = "", RegionTitle = "*removed*" }); 
     } 

    } 
} 

tôi giả sử đó là tất cả những gì cần thiết để làm, nhưng họ vẫn don' t xuất hiện trong trình khám phá thử nghiệm. Lời khuyên nào sẽ là hữu ích.

+7

Windows 8 RTM đã hết. Và bạn cần phải thực hiện các bài kiểm tra đơn vị của bạn 'Tác vụ không đồng bộ' thay vì 'void không đồng bộ' để chúng hoạt động chính xác. –

Trả lời

5

Theo Stephen Cleary, "bạn cần thực hiện các bài kiểm tra đơn vị async Task thay vì async void để chúng hoạt động chính xác".

Điều này đã khắc phục được sự cố và các kiểm tra đã xuất hiện. Thật kỳ lạ là không có lỗi xuất hiện khi tôi sử dụng void, nhưng bây giờ tôi biết. Cảm ơn bạn!

+0

Không hoạt động trong năm 2012, người đàn ông ... Không có [Test] hoặc [TestCase]. [TestMethod] cũng không có ở đó ... – UnknownJoe

1

Thực hiện xây dựng lại tất cả trên ứng dụng, bao gồm mọi dự án có chứa các lớp kiểm tra và phương pháp thử nghiệm. Họ sẽ sớm xuất hiện trong số Test Explorer sau đó.

+2

Vâng, vấn đề là chúng không xuất hiện sau khi xây dựng lại. Tôi đã phải thay đổi khoảng trống async thành công việc không đồng bộ để khắc phục sự cố. – jyanks

+1

Rất vui khi bạn làm việc đó. – akton

+0

Điều này cũng đã sửa nó cho tôi. Điều đó không trực quan để khắc phục điều đó. Tại sao MS thực hiện kiểm tra async void? Đó có phải là cho phép/giả sử các khuôn khổ thử nghiệm khác như NUnit không? Ngay cả khi có, điều đó vẫn không có ý nghĩa với tôi. –

2

Tôi có Visual Studio 2012 và tôi không thể nhìn thấy các thử nghiệm trong thử nghiệm Explorer,

Vì vậy, tôi cài đặt như sau: NUnit Test Adapter

Đó cố định vấn đề này đối với tôi!