2009-11-30 35 views

Trả lời

17

mỗi trang MSDN ...

đường dẫn tương đối có liên quan đến các thiết lập RelativePathRoot tìm thấy trong các tập tin .testrunconfig.

Cài đặt đó theo mặc định, thư mục giải pháp . Vì vậy, nếu bạn có cấu trúc dự án này

SecretProject\ 
    ComponentA\ 
    ComponentA.Test\ 
     Resources\ 
      required.xml 
     ComponentA.Test.csproj 
     Tests.cs 
    SecretProject.sln 

Và bạn muốn triển khai required.xml, bạn sẽ tạo ra một DeploymentItemAttribute như thế này

[TestClass] 
public class Tests 
{ 
    [TestMethod] 
    [DeploymentItem("ComponentA.Test\Resources\required.xml")] 
    public void Test() 
    { 

    } 
} 

Có vẻ như các tập tin thuộc tính cần phải được đặt thành 'Nội dung' và 'Sao chép luôn luôn' hoặc 'Sao chép nếu mới hơn'. Có các ví dụ nâng cao về số this MSDN page.

+3

"Có vẻ như thuộc tính tệp cần được đặt thành 'Nội dung' và 'Sao chép luôn' hoặc 'Sao chép nếu mới hơn'." Bạn sẽ ngạc nhiên khi thấy nó khó khăn như thế nào ... – SouthShoreAK

+0

@SouthShoreAK - Nó được tìm thấy ở đâu? –

+0

@ScottLangham Nó nằm trong thuộc tính Tệp của mục triển khai. Trong 'Solution Explorer' bạn cần đánh dấu tập tin (trong trường hợp này là 'required.xml'), nhấp chuột phải vào nó và chọn các thuộc tính. Bạn sẽ thấy nó ở đó. – dpimente

1

Giả sử rằng RelativePathRoot mặc định là thư mục mà giải pháp của bạn cư trú là không chính xác trong trường hợp của tôi, cũng không phải là RelativePathRoot được định nghĩa trong tệp .testrunconfig của tôi. Tôi tìm thấy RelativePathRoot mặc định là thư mục/bin/debug cho giải pháp.

Quay lại từ điểm đó, sau đó đi bộ đến tệp của tôi mà tôi đang cố gắng triển khai cho thử nghiệm đơn vị hoạt động tốt.

0

Vì vậy, tôi sẽ thêm kinh nghiệm của mình.

Vì vậy, nếu bạn đang sử dụng tệp .testrunconfig, điều đó sẽ vượt qua (ghi đè) những gì tôi đang nói bên dưới.

Tôi đã tìm ra một số tùy chọn.

So với các csproj hiện

So với các sln

So với các cs hiện nộp

Cuối cùng tôi đã xây dựng hệ thống của tôi làm việc bằng cách sử dụng "liên quan đến tệp .cs hiện tại ".

Trong ví dụ của tôi, tôi cần XSD từ một dự án khác được sao chép sang cho UnitTest của tôi. Nhưng loại tệp không quan trọng.

Ví dụ:

c: \ Myfolder \ MyXsdProject \ XSD \ MyCoolXsd.xsd

c: \ Myfolder \ MyCsharpUnitTestProject \ MySubFolder1 \ MySubFolder2 \ MyUnitTestClass.cs

namespace MyCsharpUnitTestProject.MySubFolder1.MySubFolder2 
{ 

    [TestClass] 
    [DeploymentItem(@"..\..\..\MyXsdProject\XSDs\MyCoolXsd.xsd")] 

    public class MyUnitTestClass 
    { 
    } 
} 
Các vấn đề liên quan