2012-04-12 45 views
26

Chúng tôi có các thử nghiệm MSTest tự động chạy theo giờ sản xuất. Một trong các thử nghiệm này được đánh dấu bằng thuộc tính [Ignore] vì nó chưa sẵn sàng để chạy trong môi trường sản xuất của chúng tôi.
Bây giờ tôi muốn bắt đầu thử nghiệm đó (chỉ) trên môi trường địa phương của tôi vì môi trường địa phương của tôi đã sẵn sàng cho thử nghiệm đó.
Tôi cố gắng chạy thử nghiệm đó bằng cách nhấp vào biểu tượng của ReSharper ở bên trái mã kiểm tra hoặc bằng cách nhấp vào Chạy thử nghiệm được chọn biểu tượng trong Đơn vị kiểm tra phiên cửa sổ và không có gì xảy ra.Bỏ qua IgnoreAttribute

Tôi sửa lỗi hiện tại bằng cách nhận xét ra dòng [Ignore]. Nhưng bây giờ tôi cần phải nhận thức để loại bỏ các ký tự bình luận (//) trước khi kiểm tra mã.

Có cách nào khác để tạm thời chạy thử nghiệm [Ignore] 'd không?

+1

Điều kỳ lạ là điều này chưa bao giờ xảy ra trước chúng tôi. Với VS2010 và R # 6, chúng tôi có thể thực hiện kiểm tra bị bỏ qua khi nhấp vào quả bóng bên trái trên mã và thực hiện "Chạy". –

Trả lời

27

Gần đây khi gặp sự cố như vậy, tôi thêm Build Configuration mới vào dự án studio trực quan có tên là "Local Debug Developer" và sử dụng cài đặt từ cấu hình Gỡ lỗi hiện tại. Sau đó, tôi đi đến "Project -> MyProjectName Properties -> Build", đảm bảo "Local Debug Developer" là cấu hình được chọn và thêm "LOCALDEVBUILD" vào "Ký hiệu compliation có điều kiện". Điều này cho phép việc sử dụng các chỉ thị tiền xử lý để 'chuyển đổi' mã tại thời gian biên dịch:

#if (!LOCALDEVBUILD) 
    [Ignore] 
#endif 

Không chắc nếu đây là những gì bạn đang tìm kiếm ... nhưng nó cho phép bạn chạy/sử dụng mã cụ thể tùy thuộc vào ý định của việc xây dựng (thông qua cấu hình xây dựng) ... Với phương pháp này, bạn có thể bỏ qua các thử nghiệm bị bỏ qua để xây dựng thêm 'chính thức', nhưng vẫn thực hiện nó nếu bạn muốn.

2

Có vẻ như có nhiều cách khác để bật/tắt kiểm tra bằng cách sử dụng tệp testrunconfig. Tuy nhiên, nếu bạn sử dụng IgnoreAttribute nó biên dịch với mã và do đó không thể dễ dàng chuyển đổi.

Từ documentation:

Các Bỏ qua thuộc tính cho một đơn vị kiểm tra nằm trong tập tin nguồn của bài kiểm tra đơn vị, cùng với các thuộc tính khác và mã nguồn của bài kiểm tra. Điều này có nghĩa rằng, nếu bạn vô hiệu hóa một thử nghiệm đơn vị trong cửa sổ Trình quản lý kiểm tra, và sau đó chạy thử nghiệm bằng cách sử dụng tiện ích dòng lệnh MSTest.exe, kiểm tra vẫn chạy. Nhưng nếu bạn đánh dấu một bài kiểm tra đơn vị với thuộc tính Bỏ qua, biên dịch tập hợp, và sau đó chạy thử nghiệm bằng cách sử dụng MSTest.exe, kiểm tra không chạy. Nó không chạy vì thuộc tính Ignore đã trở thành một phần của thử nghiệm.

+2

OP muốn đối diện với tính năng này. Điều này chỉ cho phép một người bỏ qua một thử nghiệm cục bộ, nhưng không bỏ qua nó trong khi thử nghiệm tự động.OP muốn tiếp tục bỏ qua thử nghiệm trong khi thử nghiệm tự động, nhưng không bỏ qua nó cục bộ. – Alain

18

Bạn cũng có thể sử dụng test category để đánh dấu các phương pháp thử mà bạn không muốn được bao gồm trong thử nghiệm tự động của mình, ví dụ:

[TestCategory("IgnoreOnBuild")] 

Do đó không sử dụng thuộc tính [Bỏ qua]. Và kết hợp điều này với bộ lọc trong định nghĩa bản dựng của bạn, trong Cơ bản -> Kiểm tra tự động -> Nguồn kiểm tra -> Bộ lọc kiểm tra trường hợp:

TestCategory!=IgnoreOnBuild 
+0

Và bên trong cửa sổ Visual Studio Test Manager, bạn có thể lọc 'Trait:" IgnoreOnBuild "' (sử dụng '-Trait:" IgnoreOnBuild "' để loại trừ chúng) –