2012-07-06 12 views
17

Tôi sử dụng dấu gạch dưới cho các Phương pháp thử của tôi để có khả năng đọc tốt hơn và tôi muốn chặn các lỗi/cảnh báo FxCop cho toàn bộ không gian tên thử nghiệm.SuppressMessage cho toàn bộ Không gian tên

Làm cách nào để đạt được điều này?

tôi chơi với GlobalSuppressions.cs nhưng không làm việc:

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "namespace", Target = "Company.Product.Tests)] 
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "namespace", Target = "Company.Product.Tests)] 
+2

+1 Ditto ... Tôi cố gắng tương tự trong tập tin AssemblyInfo.cs và nó cũng không làm việc. Có thể CA1707 không thể được nhắm mục tiêu đến toàn bộ thư viện hoặc vùng tên nhưng chỉ có thành viên. – harlam357

Trả lời

3

tôi nghĩ rằng nó không thể như harlam357 đã nói.

3

Có, điều đó là không thể với FxCop < = 10.0.

Điều bạn có thể làm là tắt CA1707 bằng tệp quy tắc tùy chỉnh (có thể chỉ dành cho các dự án thử nghiệm của bạn).

2

Như đã nói, không thể thoát khỏi hộp. Imho, nó được dự định bởi vì đàn áp phải được thực hiện một cách phi lý.

Có cách khắc phục để thực hiện việc này theo cách thủ công qua FXCop 10 với chức năng Copy As > Module-level SuppressMessage.

Nhược điểm, bạn sẽ phải lặp lại điều này mỗi khi không gian tên được sửa đổi nhưng như đã nói, các triệt tiêu toàn cục nên được cách ly.

  1. Mở lắp ráp của bạn trong FxCop 10 (System.Xml đây) và chạy phân tích
  2. Chọn namespace của bạn (System.Xml đây)
  3. Chọn tất cả các quy tắc vi phạm
  4. Nhấp chuột phải và Copy As > Module-level SupressMessage
  5. Sau đó, dán mã đó vào một GlobalSuppressions.cs ví dụ

Lưu ý: điều này có thể được thực hiện ở cấp độ lắp ráp, không gian tên hoặc loại.

Module-level SuppressMessage