2009-06-17 37 views
15

Tôi có một bài kiểm tra Đơn vị Visual Studio 2008 và tôi nhận được lỗi runtime sau:Không thể thiết lập thuộc tính TestContext

Unable to set TestContext property for the class JMPS.PlannerSuite.DataServices.MyUnitTest. Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

Tôi đã đọc rằng VS 2008 không đúng cách cập nhật các tài liệu tham khảo cho UnitTestFramework khi chuyển đổi 2005 dự án. Thử nghiệm đơn vị của tôi được tạo ra vào năm 2008 nhưng nó được thừa kế từ một lớp cơ sở được xây dựng trong VS 2005. Đây có phải là vấn đề của tôi không? Lớp cơ sở của tôi có phải được xây dựng lại vào năm 2008 không? Tôi không muốn làm điều này vì nó sẽ ảnh hưởng đến các dự án khác.

Trong các bài kiểm tra đơn vị dẫn xuất khác được xây dựng vào năm 2005, tất cả những gì chúng tôi cần làm là nhận xét thuộc tính TestContext trong bài kiểm tra đơn vị dẫn xuất. Tôi đã thử điều này trong bài kiểm tra đơn vị VS 2008 không có may mắn. Tôi cũng đã cố gắng "mới" các tài sản TestContext đó mang lại cho tôi một lỗi thời gian chạy khác nhau.

Bất kỳ ý tưởng nào?

+0

Tôi chỉ cố gắng chuyển đổi lớp cơ sở thành VS 2008 và bây giờ có vẻ như nó hoạt động. Nhưng, tôi không muốn làm điều này vì nó sẽ buộc các dự án khác phải được chuyển đổi. Vì vậy, nếu có bất kỳ cách nào xung quanh điều này, đó sẽ là tuyệt vời. – bsh152s

+0

Tôi đang gặp vấn đề tương tự trong lớp Kiểm tra mà tôi đã tạo mới trong VS2008. – jcollum

Trả lời

0

Tôi đã gặp phải sự cố tương tự. Hóa ra là một trong những dự án của tôi đã tham chiếu đến 8.0 hội đồng và dự án kia đã tham chiếu đến 9.0. Giải pháp được biên dịch, nhưng tôi có ngoại lệ thời gian chạy.

1

Tôi đăng bài này ở đây với hy vọng rằng nó sẽ giúp một người nào đó thử nghiệm một dự án thiết bị thông minh. Tôi có một lỗi rất giống nhau khi lần đầu tiên tôi đã cố gắng để chạy một thử nghiệm đơn vị cho một phương pháp trong một dự án thiết bị thông minh tôi đã làm việc trên trong Visual Studio 2008:

Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

Googling lỗi trả lại kết quả mà đề nghị nó được gây ra bởi nâng cấp một dự án thử nghiệm từ định dạng Visual Studio 2005 lên 2008, và tham chiếu đến UnitTestFramework.dll vẫn còn cho phiên bản cũ (8.0) và yêu cầu cập nhật. Điều này không áp dụng cho tôi vì tôi đã không nâng cấp dự án thử nghiệm của tôi từ VS2005. Vì vậy, tôi tiếp tục tìm kiếm.

Sau giờ tìm kiếm nguyên nhân khác cho các lỗi nhưng không thành công, tôi stumbled khi tài liệu tham khảo sau đây trong các dự án thiết bị thông minh:

  • Microsoft.WindowsMobile.dll
  • Microsoft.WindowsMobile.Status.dll

Visual Studio đã có được những tài liệu tham khảo từ các thư mục sau:

C:\Program Files\Windows Mobile 5.0 SDK R2\Managed Libraries 

Tuy nhiên, nền tảng mục tiêu của dự án thiết bị thông minh là Windows Mobile 6 Professional SDK. Tôi đã không nhận thấy điều này trước đây vì ban đầu tôi không tạo dự án thiết bị thông minh. Vì vậy, tôi loại bỏ các tham chiếu đến hai DLL và readded chúng từ thư mục sau đây:

C:\Program Files\Windows Mobile 6 SDK\Managed Libraries 

Sau khi xây dựng lại dự án thiết bị thông minh, chạy phương pháp thử nghiệm đã thành công.

19

Tôi đã gặp vấn đề tương tự trong Visual Studio 2012 khi tôi nâng cấp một dự án cũ hơn (tôi nghĩ năm 2005).

Tham chiếu đến Microsoft.VisualStudio.QualityTools.UnitTestFramework cần được xóa bằng cách nhấp chuột phải vào Solution Explorer rồi xóa nó.

Để thêm một trong những quyền:

  1. Add New Reference
  2. Extensions, tìm Microsoft.VisualStudio.QualityTools.UnitTestFramework, có khả năng nhiều
  3. chuột lên để hiển thị đường dẫn, chọn một trong các trong ../IDE/PublicAssemblies
  4. sạch
  5. Rebuild
  6. Chạy lại kiểm tra
+1

Điều này làm việc tốt cho tôi trong VS 2010 là tốt. Đường dẫn trong bước 3, nếu bạn không quen thuộc, là Program Files/Visual Studio (phiên bản của bạn, của tôi là 10)/Common7/IDE/PublicAssemblies. –

+0

Câu trả lời ở trên phù hợp với tôi. Trong trường hợp bạn vẫn đang chiến đấu, hãy thử: dbl-click SmartDeviceTestRun.testrunConfig (được tạo khi dự án thử nghiệm đơn vị được tạo) -> Máy chủ -> chọn nền tảng và Thiết bị của bạn. Ngoài ra: dự án thử nghiệm r-click -> properties -> devices -> chọn thiết bị đích của bạn (thiết bị đích của dự án thử nghiệm phải bằng thiết bị đích của dự án thực tế). – robor78

+0

Tôi có cùng một vấn đề và UTFramework của tôi được tham chiếu đến C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll cho VS 2012 – Random

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