7

Có giải pháp nào cho sự chậm chạp của thử nghiệm NUnit đầu tiên khi sử dụng Entity Framework 4.1 không?NUnit thử nghiệm đầu tiên rất chậm với Khung thực thể trong thử nghiệm Resharper runner

Tôi đang tìm kiếm nó mất khoảng 10 giây cho thử nghiệm đầu tiên, phần còn lại của các bài kiểm tra của tôi đang chạy trong 0,01 giây (theo Resharper Show Time tùy chọn)

Nếu tôi chạy thử nghiệm bằng cách sử dụng GUI NUnit, một lần nữa thử nghiệm đầu tiên mất 10 giây, nhưng nếu tôi chạy lại toàn bộ các xét nghiệm chạy trong chưa đầy 0,5 giây ... cho đến khi tôi biên dịch lại giải pháp

Tôi cũng có một thử nghiệm NUnit của một Dịch vụ WCF được lưu trữ trong IIS, gọi là EF, và dịch vụ đầu tiên kết thúc sau khoảng 3 giây. Sau đó, nếu tôi chạy lại các thử nghiệm, nó xuống đến 1 giây và, như mong đợi, trên biên dịch lại lần đầu tiên là trở lại 3 giây.

Nhưng các bài kiểm tra NUnit gốc, đó là chống lại một thư viện lớp học với phương pháp gọi EF, luôn quanh mốc 10 giây, tức là không giảm trong thời gian

Ok, tôi nhận được rằng IIS đang làm "một cái gì đó "[cái gì?], nhưng trong cả hai trường hợp, tôi đang sử dụng NUnit để thực hiện cuộc gọi ... tại sao cứ 10 giây trở lên cho cuộc gọi đầu tiên, số còn lại là 3 giây và sau đó 1 giây cho các cuộc gọi tiếp theo ??

Và để thực sự gây nhầm lẫn cho tôi, tôi đã viết một ứng dụng giao diện điều khiển đơn giản gọi một trong các phương pháp EF bằng cách sử dụng các phương thức trong lớp đang được kiểm tra và hoàn thành sau 1 giây.

CẬP NHẬT ... các bài kiểm tra tương tự được viết lại dưới dạng kiểm tra MSTest hoàn thành bài kiểm tra đầu tiên trong khoảng 3,5 giây, tương đương với lần chạy thử đầu tiên trong giao diện đồ họa NUnit GUI, vì vậy vấn đề có vẻ là Resharper Á hậu thử nghiệm cho NUnit trong Visual Studio

CẬP NHẬT 2 ... có, vấn đề dường như là nhân viên thử nghiệm Resharper. TestDriven.NET và Visual Nunit 2010 đều nhanh hơn.

CẬP NHẬT 3 ... và nó bây giờ đăng nhập với JetBrains như một vấn đề

Trả lời

2

Đó là hành vi phổ biến bởi vì các thử nghiệm đầu tiên sẽ cần phải biên dịch "quan điểm EF" - điều này xảy ra lần đầu tiên bạn sử dụng bất cứ điều gì trong ánh xạ mô hình của bạn. Các chế độ xem được biên dịch tương tự sau đó được lưu vào bộ nhớ cache và được sử dụng lại. Nó có thể tránh được nhưng nó đòi hỏi bạn phải tự tạo mã cho các khung nhìn (by using EdmGen.exe) thêm mã đó vào dự án của bạn và biên dịch cùng với giải pháp của bạn. Bạn sẽ phải làm điều này mỗi khi bạn thay đổi bất cứ điều gì trong EDMX trừ khi bạn làm cho nó như là một số hành động xây dựng trước trong dự án của bạn (nó sẽ lần lượt làm chậm xây dựng của bạn).

+0

Tôi phải làm điều gì sai ... đã thử quá trình được mô tả trên liên kết của bạn, nhưng vẫn NUnit thử nghiệm đầu tiên mất 10+ giây. Điều gì khiến tôi bối rối hơn là tôi đã thử một ứng dụng giao diện điều khiển gọi cùng một mã và mất khoảng một giây ... tại sao/NUnit làm gì? – SteveC

+0

Khi nghi ngờ, hãy tát Process Monitor lên đó. –

+0

Slap Process Monitor về điều gì? ... NUnit? – SteveC

1

Sự khác biệt giữa các trình chạy khác nhau có thể là do nền tảng (x64 so với x86) mà chúng đang sử dụng. EF khởi động chậm hơn ở chế độ x64.

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