2013-03-25 27 views
7

Chỉ cần cài đặt và cập nhật 2012 2 (http://www.microsoft.com/en-us/download/details.aspx?id=36833) vì vậy tôi có thể sử dụng so với hàng giả/miếng chêm để kiểm tra mã khó kiểm tra. Tất cả mọi thứ biên dịch tốt khi tôi tạo ra các hội đồng giả và tất cả các tài liệu tham khảo được thêm vào trong dự án thử nghiệm đơn vị như mong đợi. Tuy nhiên chạy đoạn mã sau vào bất kỳ thử nghiệm ...Visual Studio 2012 giả lập thiết bị UnitTestIsolation không thể khởi tạo

using (ShimsContext.Create()) 
{ 
    //Doesn't matter whats in here 
} 

Ném các ngoại lệ sau đây ...

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test 

ngoại lệ đầy đủ với stack trace ...

Test 'Abot.Tests.Unit.Core.HapHyperLinkParserTest.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks' failed: Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test 
at Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider() 
at Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext() 
at Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create() 
Core\HyperlinkParserTest.cs(59,0): at Abot.Tests.Unit.Core.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks() 

Một vài lưu ý ...

  • Tôi đang sử dụng studio hình ảnh 2012 trước mium
  • Tất cả các dự án trong mục tiêu giải pháp .net 4.0
  • Tôi đang sử dụng nunit cho testing framework
  • Cố gắng chạy thử nghiệm thông qua Plugin testdriven.net và nunit gui nhưng cùng một lỗi.
  • Cố gắng nhắm mục tiêu .net 4.5 và có những lỗi tương
  • tôi không sử dụng Typemock hoặc Ncrunch và họ không được cài đặt
  • Tôi đang sử dụng Moq nhưng loại bỏ nó từ thứ
  • nó không gắn với một kiểm tra cụ thể, tôi đã xác minh nó không thành công trong các tệp thử nghiệm khác nhau và trong một giải pháp khác.
+1

Tôi nghĩ bạn phải sử dụng nhân vật thử nghiệm vstest, VS2012 sử dụng nó, cũng như TFS 2012 – Matthew

+0

Kiểm tra trang Microsoft Connect này: http://connect.microsoft.com/VisualStudio/feedback/details/785411/cannot- debug-unit-tests-with-shims-in-vs2012-w-update2 – Monsignor

Trả lời

8

Matthew đã chính xác. Bạn phải sử dụng nhân vật thử nghiệm vs.

-Có cài đặt Bộ điều hợp thử nghiệm NUnit 0,94 thông qua trình quản lý tiện ích mở rộng cho phép so với người chạy thử nghiệm chạy nunit.

-Có sử dụng cửa sổ trình khám phá thử nghiệm để chạy thử nghiệm.

Có vẻ như chạy thử nghiệm kết thúc tốt đẹp các thử nghiệm đang chạy trong ngữ cảnh để làm cho ma thuật giả xảy ra.

1

Ngoài ra, nếu bạn muốn chạy thử nghiệm từ máy chủ CI, bạn sẽ cần thực thi VS Test Runner từ bảng điều khiển và cũng chỉ định rằng bạn muốn sử dụng tiện ích mở rộng nUnit discovery.

Lệnh sẽ là một cái gì đó như thế này:

{ProgramFiles}\Microsoft Visual Studio\11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow>vstest.console.exe /inIsolation /UseVsixExtensions:true {testsPath} 
0

Thiết lập lại các thiết lập ngoại lệ của bạn dưới debug:

menu debug -> Exceptions -> Reset All.

Khi tôi thay đổi cài đặt ngoại lệ bằng cách bỏ chọn trong chế độ gỡ lỗi:

"Break khi loại trừ đây là người dùng không được quản lý"

nào gây ra vấn đề này.

+0

bằng cách bỏ chọn ngoại lệ, không có lỗi nhưng thực thi bị hỏng, dường như không giải quyết được vấn đề – DanielV

+0

bằng cách hoàn tác lần cuối cùng của bạn gợi ý, bạn cần làm [this] (http://stackoverflow.com/a/16970704/1257607) – DanielV

Các vấn đề liên quan