12

Tôi đang sử dụng MS unit testing framework để thử nghiệm thư viện C# của mình. Tôi phải mở một tập tin mà tôi đang triển khai sử dụng DeploymentItem attribute. Nhưng nó không phải là triển khai tập tin vào thư mục triển khai thử nghiệm.Triển khaiKhông triển khai tệp

Trong dự án thử nghiệm Đơn vị của tôi, tôi đã tạo một thư mục TestFile trong thư mục này có nhiều tệp, cho phép nói a.txt, b.txt.

Bây giờ trong lớp Đơn vị thử nghiệm của tôi, tôi đã thêm thuộc tính DeploymentItem. Nhưng tệp không được sao chép.

Đây là mã của tôi.

[TestClass] 
[DeploymentItem("TestFile")] 
public class CustomLibraryTest 
{ 
    public TestContext TestContext { get; set; } 

    [TestMethod] 
    [DeploymentItem(@"TestFiles\a.txt")] // THis should deploy a.txt to test deployment directory 
    { 
     var path = TestContext.TestDeploymentDir + "a.txt"; 
     // Now when I debug this unit-test, and open path in explorer, 
     // a.txt is not present in "TestResults\Deploy_fhafeez 2013-05-28 13_02_37\Out" folder 
    } 
} 

Tôi đang làm gì sai?

Trả lời

14

Tôi đã tìm thấy hai giải pháp khả thi trong this thread:

  1. Đặt "Sao chép đến thư mục khác Output" tài sản của các tập triển khai của bạn để "Copy Luôn luôn" (xem Problems with DeploymentItem attribute)
  2. Kiểm tra "Enable triển khai" thiết lập trong tệp Local.testsettings (xem Problems with DeploymentItem attribute)

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn đã trợ giúp. Tôi đặt "Sao chép Luôn luôn". Tôi đã thực hiện triển khai bằng cách sử dụng cài đặt thử nghiệm, tôi đã nghĩ đến việc sử dụng DeplyomentAttribute lần này. –

4

Để tham khảo sau này, từ những gì tôi đã nhận thấy khi sử dụng VS 2015 - đường dẫn bạn chỉ định trong thuộc tính mục triển khai phải tương ứng với đầu ra xây dựng (thư mục gỡ lỗi). Nếu cấu trúc thư mục của bạn là "UnitTesting \ TestData \ Test.xml" DeploymentItem phải là DeploymentItem (".. \ .. \ TestData \ Test.xml") Trong trường hợp này, thư mục TestData không cần đưa vào dự án UnitTesting .