2011-08-10 27 views
13

Nói (100% giả thuyết) rằng tôi đã vô tình thêm dự án thử nghiệm đơn vị làm loại dự án "Thư viện lớp" vào giải pháp VS2010. Sau đó tôi đã thêm các assembly cần thiết để chạy nó như là một dự án Test Unit, nhưng MSTest sẽ không nhận nó khi tôi nhấn "Run all tests in solution". Các tiêu chí ở đây là gì?Visual Studio/mstest xác định các dự án thử nghiệm như thế nào?

tôi đã có một vài lý thuyết, mà tất cả đã thất bại cho đến nay:

  • Something trong file .testsettings (không đề cập đến bất kỳ cụm đây như xa như tôi có thể nhìn thấy)
  • Something trong file sln (không thể tìm thấy bất cứ điều gì)
  • Something trong AssemblyInfo.cs (không, nó không phải)
  • Implict bằng cách tham khảo (...) UnitTestFramwork.dll (OBV không)

Bất kỳ ai?

Trả lời

26

Trong tệp dự án, có phần tử XML có tên ProjectTypeGuids, chứa một số GUID biểu thị dự án thử nghiệm. Ví dụ như sau.

<Project> 
    <PropertyGroup> 
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
    </PropertyGroup> 
</Project> 

Dưới đây là danh sách các GUID loại dự án được biết đến với Visual Studio 2010: http://onlinecoder.blogspot.com/2009/09/visual-studio-projects-project-type.html

Trong ví dụ trên, nó cho thấy dự án sẽ được loại thử nghiệmWindows (C#).

+1

Tôi thấy có biểu tượng bình, tôi cũng cần thêm ' UnitTest' – Ruskin

2
  1. Trong giải pháp Explorer, nhấp chuột phải vào tên dự án và chọn Unload Project.
  2. Sau đó nhấp chuột phải vào tên dự án một lần nữa và chọn Chỉnh sửa ProjectName.csproj.
  3. Xác định vị trí ProjectTypeGuids phần tử và mã sau. (Nếu bạn sẽ không tìm thấy các yếu tố ProjectTypeGuids, chỉ cần chèn nó)

    <Project> <PropertyGroup> <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ProjectTypeGuids> </PropertyGroup> </Project> .

  4. Lưu thay đổi, bấm chuột phải vào dự án, sau đó chọn Tải lại Project.

3

Trong trường hợp giúp bất kỳ ai tôi gặp vấn đề ngược lại - tôi đã thêm dự án làm Kiểm tra đơn vị nhầm lẫn. Để thay đổi kiểu trở lại một thư viện lớp bình thường, tôi chỉ cần loại bỏ các thẻ ProjectTypeGuids được đề cập trong các câu trả lời khác hoàn toàn, có lẽ VS đặt lại những cái đúng.

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