2010-06-16 31 views
5

Tôi đã phát hiện ra rằng DeploymentItemMSTest VS2010 - DeploymentItem file sao chép đến các địa điểm khác nhau trên các máy khác nhau

[TestClass(), DeploymentItem(@"TestData\")] 

không sao chép tập tin dữ liệu thử nghiệm của tôi đến vị trí tương tự khi xét nghiệm được xây dựng và chạy trên các máy khác nhau.

Tệp dữ liệu thử nghiệm được sao chép vào thư mục "bin \ debug" trong dự án thử nghiệm trên máy của tôi, nhưng trên máy của bạn tôi, chúng được sao chép thành "TestResults \ name_machine YY-MM-DD HH_MM_SS \ Out" .

Các bin \ debug thư mục trên máy tính của tôi có thể thu được với các mã:

string appDirectory = 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

và cùng mã sẽ trở lại TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out trên máy tính của bạn bè của tôi.

Tuy nhiên, điều này thực sự không phải là vấn đề. Vấn đề là các tệp dữ liệu thử nghiệm mà tôi đã tạo có cấu trúc thư mục và cấu trúc thư mục này chỉ được duy trì trên máy của tôi khi được sao chép vào bin \ debug, trong khi trên máy bạn bè của tôi chỉ các tệp được thêm vào thư mục TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out. Điều này có nghĩa là các bài kiểm tra sẽ vượt qua trên máy tính của tôi và không thành công!

Có cách nào để đảm bảo DeploymentItem luôn sao chép vào thư mục bin \ debug không? Hoặc một cách để đảm bảo rằng cấu trúc thư mục sẽ được giữ lại khi DeploymentItem sao chép các tệp vào thư mục TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out?

Trả lời

2

Sau khi chơi xung quanh một lúc, có vẻ như cách tốt nhất để đối phó với nó là để đảm bảo rằng cho mỗi thư mục con, bạn thêm một DeploymentItem mới đảm bảo rằng bạn chỉ định "outputDirectory", như vậy:

[TestClass(), DeploymentItem("TestData\\", "TestData"), 
DeploymentItem(@"TestData\\SubDir\\", "TestData\\SubDir")] 

Điều này cho phép các thử nghiệm chạy trên máy của bạn - hy vọng điều này sẽ giúp ai đó!

+0

Điều này giải quyết vấn đề đường dẫn tương đối của tôi chính xác. Tôi đã có cùng một vấn đề với các tập tin được lưu trữ trong thư mục con và đường dẫn tương đối được định nghĩa trong file app.config. Thx –

+1

Thuộc tính 'DeploymentItem' chỉ nhắm vào các phương thức. Làm thế nào là những gì bạn đang viết làm việc ở tất cả? –

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