2008-11-13 21 views
11

Tôi đã ấn tượng rằng các phương pháp thử nghiệm trong một lớp thử nghiệm đơn vị would be executed in the order that they appear in the class file. Rõ ràng điều này là không đúng sự thật. Nó cũng không xuất hiện hoàn toàn dựa trên thứ tự chữ cái. MSTEST quyết định lệnh thực hiện như thế nào?Kiểm tra Nhóm MSTEST/Visual Studio 2008 Quyết định Kiểm tra Phương thức Thi hành Phương thức Thử nghiệm như thế nào?

EDIT: Tôi đã có thể theo dõi câu trả lời sau khi đào một chút. Xem bên dưới.

+0

FYI: "xUnit.net chạy thử nghiệm theo thứ tự ngẫu nhiên", Ade Miller http://www.ademiller.com/blogs/tech/2007/11/xunitnet-run-tests-in-random-order/ – gerryLowry

Trả lời

-1

Nó không nên có vấn đề gì để họ chạy trong ... nếu xét nghiệm của bạn phụ thuộc vào xét nghiệm khác chạy đầu tiên, kiểm tra của bạn là thiếu sót :-)

+1

Tôi nghĩ rằng đã đến. –

+1

Đồng ý - nhưng điều gì về kịch bản khi bạn đang cố gắng theo dõi thử nghiệm nào không tự dọn dẹp (trong thử nghiệm điều khiển dữ liệu) - biết rằng lệnh thực hiện sẽ giúp ích trong trường hợp này – Delaney

+0

Tôi biết điều này không phải lúc nào cũng có thể, có một vài thử nghiệm khai thác dữ liệu được điều khiển theo cách này. Nhưng bạn nên tránh các thử nghiệm theo hướng dữ liệu như thế này bằng mọi giá. Các bài kiểm tra đơn vị chỉ nên kiểm tra các đơn vị. Các thử nghiệm điều khiển dữ liệu nên là các thử nghiệm tích hợp, và được chạy bằng một số công cụ khác (ví dụ: không phải là mstest hoặc nunit), nơi bạn có thể kiểm soát thứ tự thực hiện cho chính xác lý do bạn mô tả :-) –

1

Có rất nhiều cách để đặt hàng các bài kiểm tra trong VS. Sử dụng chế độ xem thử nghiệm và thêm cột và thứ tự bổ sung. Tôi sử dụng các tập tin VSMDI và điều này chạy chúng theo thứ tự được chỉ định trong đó.

2

Phân loại trong thử nghiệm View, hoặc biên tập danh sách kiểm tra làm cho chúng xuất hiện giống như bạn có quyền kiểm soát - đó là chỉ là một sản phẩm của việc thực hiện. Chúng tôi không cố gắng thực sự thực hiện chúng theo một thứ tự cụ thể (Chúng tôi đã đi qua lại trên "lệnh cho phép" và "đặt hàng ngẫu nhiên").

Nếu bạn thực sự cần đơn hàng, đó là những gì các thử nghiệm được sắp xếp cho. Chúng có sẵn trong tất cả các phiên bản có sẵn Kiểm tra Đơn vị - hoặc sử dụng menu Kiểm tra/Thử nghiệm Mới hoặc nhấp chuột phải vào dự án thử nghiệm và tạo "kiểm tra có trật tự"

2

Rất đơn giản. Tôi đang sử dụng này

C:> MSTest /testcontainer:C:\MyTest.dll /resultsfile:C:\MyTestresults.xml

Logic là ở đây mà theo mặc định MSTest mang đến cho bạn một tập tin .trx. Vì vậy, trong lệnh chống lại [/ resultfile:] tùy chọn viết tên của tập tin bằng cách cho phần mở rộng .xml. Vì vậy, tôi đã sử dụng /resultsfile:C:\MyTestresults.xml thay vì /resultsfile:C:\MyTestresults.trx

Điều này làm việc tốt cho tôi. Hãy cho tôi biết nếu nó làm việc cho bạn.

2

Trong kinh nghiệm của tôi (tôi hơi khó) Tôi đã thử rất nhiều suy nghĩ về thứ tự thay đổi của các lệnh thực thi phương thức trong dự án MStest. Tôi sẽ cố gắng mô tả các bước.

  1. Bạn nên đảm bảo xóa tệp .testrunconfig và .vsmdi mặc định. Các tệp này được tạo bởi Visual Studio khi tạo dự án thử nghiệm.

  2. Đóng phiên bản Visual Studio và mở lại.

  3. Khi Visual Studio mở, bạn nên mở Danh sách kiểm tra sau đó Tạo danh sách của riêng bạn trong phần Danh sách kiểm tra. Sau khi bạn tạo danh sách thử nghiệm mới, nó sẽ trống.

  4. Chuyển đến phần Tất cả các thử nghiệm đã tải sau đó kéo bất kỳ thử nghiệm nào vào phần thử nghiệm mới được tạo ra với thứ tự được chọn của bạn.

Sau đó đảm bảo phần kiểm tra được tạo cuối cùng của bạn được kiểm tra và bạn có thể nhấn chạy thử và voala đang chạy theo thứ tự đã xác định của bạn.

Tôi không biết điều này có thể gây ra lỗi hoặc một số thứ như thế, nhưng nó hoạt động một cách kỳ diệu. Chúng tôi đã thử nghiệm phương pháp này một vài lần với đồng nghiệp của tôi.

Khóa tốt

2

Vấn đề: Điều tôi muốn làm là chỉ chạy các thử nghiệm web được đưa vào thử nghiệm đặt hàng của tôi. Tôi đang sử dụng một bài kiểm tra có trật tự cho mục đích đó, vì vậy tôi có thể chạy các bài kiểm tra web theo thứ tự cụ thể mà tôi cần chúng. Tôi có rất nhiều bài kiểm tra trên web, nhưng bài kiểm tra được sắp xếp của tôi chứa một tập hợp con các bài kiểm tra web đó mà tôi muốn chạy. Giải pháp: Một thử nghiệm được sắp xếp được sử dụng để chạy một bộ kiểm tra theo một thứ tự nhất định. Tạo danh sách kiểm tra Trình đặt hàng trong Visual Studio/dự án thử nghiệm. Từ cửa sổ kiểm tra xem (Test | Windows | Test View), chọn OrderedTest và chạy nó từ đó (bạn có thể nhấp chuột phải vào nó và chọn "Run Selection"). Lệnh đã đặt hàng sẽ tự động chạy tất cả các webtests của bạn được bao gồm trong đó.

Bạn sẽ có kết quả trong cửa sổ kết quả kiểm tra (Kiểm tra | Windows | Kết quả kiểm tra); nhấp đúp vào OrderedTest, và bạn sẽ thấy kết quả chi tiết cho tất cả mọi người trong webtests của bạn ở đó. Bạn có thể nhấp đúp vào mỗi webtest, và bạn sẽ có thể xem kết quả chi tiết cho mỗi người trong số họ.

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