2010-05-27 36 views
5

Tôi có một số Thử nghiệm mà tôi chạy với tính năng "Chạy tất cả các thử nghiệm từ giải pháp" của ReSharpers. Một trong các lớp đang được thử nghiệm có một sự phụ thuộc vào một tệp trong cùng thư mục với assembly chứa nó. Tệp này được sao chép vào thư mục đầu ra qua MSBuild (đặt "Sao chép vào thư mục đầu ra" thành "Sao chép luôn").Cách truy cập các tệp dự án từ các thử nghiệm NUnit

Sự cố: Các kiểm tra không được chạy từ thư mục kết xuất bình thường, nhưng thay vào đó là một số vị trí tạm thời trong hồ sơ người dùng của tôi.

Vì vậy, tôi thực sự không biết tìm tập tin ở đâu - trình kiểm tra không sao chép ở đó. Tôi có thể ép buộc không?

Trả lời

4

Có vẻ như bạn đang chạy thử nghiệm với tùy chọn Sao chép bóng được bật.

Đi tới Thu hồi lại-> Tùy chọn và chọn tab Kiểm tra đơn vị (ngay ở cuối danh sách). Bỏ chọn "Cụm sao chép bản sao đang được kiểm tra" và thử lại.

+0

chỗ trên :) cảm ơn! –

+0

Câu trả lời rất hay, nhưng Shadow Copy là một tính năng khá gọn gàng mà tôi tìm thấy. Bất kỳ cách nào khác mà không cần sao chép thủ công tệp từ thiết lập lịch thi đấu? – Wernight

6

Trang web NUnit đề xuất trong trường hợp chính xác này để sử dụng thuộc tính Assembly.CodeBase, dẫn đến bin/gỡ lỗi mà tôi cần.

"Lưu ý: Nếu bạn bị cám dỗ vô hiệu hóa bản sao bóng để truy cập các tệp trong cùng thư mục với hội đồng của bạn, bạn nên lưu ý rằng có các lựa chọn thay thế. Hãy xem xét sử dụng thuộc tính Assembly.Codebase thay vì Assembly.Location. "

Các .Location trở Uri địa chỉ phong cách "file: //// D: // Dự án ...", do đó các mã thực tế tôi sử dụng là

string applicationDirectory = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath; 
+0

Bạn có thể đăng liên kết tới trang mà bạn đã tìm thấy trích dẫn đó không? – blachniet

+0

Đó là tài liệu của họ. Trang cho phiên bản hiện tại là [http://www.nunit.org/index.php?p=settingsDialog&r=2.6.1](http://www.nunit.org/index.php?p=settingsDialog&r=2.6. 1). Page chapter là "Test Loader Settings - Advanced", chi tiết về "Shadow copy" – Roman

+0

Tôi có cùng một kết quả có hoặc không có tùy chọn shadow Copy, vì vậy tôi phải tìm giải pháp này và xây dựng đường dẫn tuyệt đối cho tất cả các tệp thử nghiệm của tôi bằng cách sử dụng 'Path.Combine (applicationDirectory, fileName)'. – furier

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