Visual Studio 2010, máy x64, sử dụng máy chủ web tích hợp để lưu trữ dịch vụ WCF với một bộ kiểm tra đơn vị sử dụng khung kiểm tra tích hợp sẵn.Tệp Xml không sao chép để kiểm tra thư mục đầu ra
Tôi có tệp XML mà các thử nghiệm của tôi cần tải để chạy. Tôi đã đưa tệp này vào dự án thử nghiệm và đặt tệp thành 'nội dung' và 'luôn sao chép sang thư mục đầu ra'. Tệp này sao chép vào thư mục bin \ debug.
Khi tôi thực hiện các thử nghiệm, tuy nhiên, tệp xml không có ở đó. Thay vì tìm trong thư mục bin \ debug của dự án, nó tìm nó trong thư mục làm việc của bài kiểm tra, C: \ Projects \ SAP Reapprovals \ TestResults \ name_machine 2010-12-06 13_45_43 \ Out ". Tệp chưa được sao chép ở đó .
có cách nào để buộc tập tin này để sao chép, hay tôi cần phải hội đủ điều kiện đầy đủ các tài liệu tham khảo từ bên trong thử nghiệm?
TIA!
James
cập nhật
Tôi đặt số đăng ký DeploymentItem
ute, nhưng tệp vẫn không sao chép. Nhưng mà chắc chắn trông giống như những gì tôi muốn ... bất kỳ ý tưởng tại sao mà không hoạt động?
Mã của tôi kiểm tra:
[TestMethod]
[DeploymentItem("SAP - GS3 format.xml")]
public void TestProcessSapRoles() {
// I get a 'file not found' error here, and when
// I check the output directory, it isn't there
XElement rolesRoot = XElement.Load("SAP - GS3 format.xml");
}
TRẢ LỜI:
Cảm ơn đi ra ngoài để CPedros, với sự giúp đỡ của ông tôi đã phóng to về vấn đề này một chút. Tôi đã chạy Process Monitor của SysInternals, để xem nó đang tìm tập tin xml của tôi ở đâu. Đây là những gì tôi thấy:
Khi tôi chạy các bài kiểm tra sử dụng ctrl + r, ctrl + t (kiểm tra debug trong bối cảnh hiện nay), visual studiolờ cácDeploymentItem
thuộc tính hoàn toàn và thậm chí còn không hãy thử để sao chép tệp ở mọi nơi. Trong trường hợp này, tôi có ngoại lệ "Không tìm thấy tệp" khi tôi cố mở nó để đọc. Visual studio tạo một thư mục làm việc tạm thời cho các bài kiểm tra, nhưng chỉ có một tệp trong đó, AgentRestart.dat.
Khi tôi chạy thử nghiệm bằng cách sử dụng nút 'Chạy thử nghiệm đơn vị' trên thanh công cụ của tôi (không chắc chắn tùy chọn kiểm tra), Visual Studio không sao chép tệp, nhưng tham chiếu trực tiếp từ thư mục dự án. Bài kiểm tra đã trôi qua và không có thư mục làm việc tạm thời nào được tạo.
Khi tôi chạy thử nghiệm từ tùy chọn trình đơn "chạy -> thử nghiệm trong ngữ cảnh hiện tại" (chạy, không gỡ lỗi), thư mục làm việc tạm thời đã được tạo và tệp xml và tất cả tệp thi hành được sao chép vào đó. Thử nghiệm đã trôi qua.
Khi tôi chỉnh sửa Local.testsettings (trong thư mục Các thư mục giải pháp trong thư mục kiểm tra của tôi), tôi đã chọn 'Triển khai' từ menu bên trái và thêm tệp xml. Nó đã được thêm vào như [thư mục giải pháp] \ [thư mục dự án] \ file.xml. Tôi đã xóa thuộc tính DeploymentItem
. Bây giờ tôi đã có thể gỡ lỗi các bài kiểm tra; tệp xml và tất cả các tệp thực thi được sao chép vào thư mục tạm thời được tạo cho thử nghiệm.
TLDR: Visual Studio bỏ qua thuộc tính DeploymentItem
cho các cách nhất định chạy thử nghiệm.Giải pháp là chỉnh sửa Local.testsettings
, menu Deployment
và thêm tệp bằng tay.
Cảm ơn sự giúp đỡ! Tôi cho tín dụng CPedros cho câu trả lời của mình, vì nó là hữu ích nhất trong việc giải quyết vấn đề này.
Cập nhật tuyệt vời, bạn là một ngôi sao tuyệt đối !! Tôi sẽ upvote nhiều hơn nếu tôi có thể ... – MalcomTucker
Chạy thử nghiệm đơn vị đã làm các trick cho tôi. Câu hỏi hay. Cảm ơn –
@James B Đối mặt với tất cả điều này với phiên bản Visual Studio 2012 Express, gần đây đã được nâng cấp từ .NET 2.0 lên .NET 4.5. Chỉ muốn chứng minh rằng SO thực sự là kho lưu trữ thông tin hữu ích lâu dài. Bản cập nhật của bạn thực sự giúp tôi xử lý việc này. – DavidHyogo