2010-01-25 19 views
10

Tôi đang gặp sự cố khi tải tệp XSL vào cùng một thư mục với nhóm thử khi tôi sử dụng thuộc tính DeploymentItem trên thử nghiệm đơn vị MSTest. Tôi theo câu trả lời đã chọn cho this question và tệp tôi cần sao chép có "Bản sao vào thư mục đầu ra" được đặt thành "Sao chép luôn". Khi tôi kiểm tra thư mục ProjectDir \ bin của mình (thư mục đích), tệp tôi muốn sao chép thực sự ở đó, cùng với các tệp DLL và PDB.C# DeploymentItem không sao tệp cho thử nghiệm đơn vị MSTest

Tôi có một bài kiểm tra vài đơn vị với các thiết lập sau:

private const string DLL = "Service.dll"; 
private const string XSL_PATH = "transform.xsl"; 

[TestInitialize] 
public void InitializeTest() 
{ 
    Assert.IsTrue(File.Exists(DLL)); // passes 
} 

[TestMethod] 
[DeploymentItem(DLL)] 
[DeploymentItem(XSL_PATH)] 
public void XmlToResultsTest() 
{ 
    Assert.IsTrue(File.Exists(XSL_PATH)); // fails 
} 

Các thử nghiệm XSL thất bại bởi vì khi tôi kiểm tra TestResults MSTest của \ particularTestRun \ Out thư mục, tôi thấy các DLL và PDBs, nhưng tập tin XSL của tôi không có ở đó. Những gì tôi muốn biết là lý do tại sao tệp XSL không được sao chép cùng với các tệp DLL và PDB ngay cả khi tôi nói rõ ràng với Visual Studio để sao chép nó ở đó qua DeploymentItem?

Trả lời

10

Cảm ơn Marc Gravell's answer đến câu hỏi liên quan của tôi, tôi đã thử cập nhật tệp .testrunconfig MSTest để tệp XSL của tôi được bao gồm trong phần 'Triển khai'. Điều này cho phép kiểm tra đơn vị của tôi vượt qua, nhưng tôi vẫn lo lắng rằng tôi phải làm điều này - không nên kết hợp của DeploymentItem và đánh dấu các thuộc tính của tệp trong dự án của tôi để sao chép vào thư mục đầu ra là đủ?

+0

Tôi có cùng một vấn đề này Sarah - rất khó hiểu! –

1

Các mục triển khai bị cáo buộc VS2008 âm thầm thất bại trừ khi thư mục đầu ra là một chuỗi ký tự. Hmmm^_^

+0

Nguồn của bạn ở đâu? Nếu đó là sự thật, thì điều đó thật điên rồ. Tôi muốn hằng số chuỗi của tôi, dang nó! –

+0

Không phải cái gì tôi đã sao chép cá nhân, nhưng tôi đã có một số vấn đề triển khai và googled xung quanh, tìm thấy rất nhiều blog nói rằng họ có vấn đề với DeploymentItem, ví dụ: http://sergeyshishkin.spaces.live.com/blog/cns! 9F19E53BA9C1D63F! 185.entry Cuối cùng tôi đã chọn một thư mục triển khai toàn cục trong một tệp .testrunconfig. – andrewb

1

Tôi đã gặp sự cố tương tự mặc dù tôi sử dụng chuỗi ký tự trong mục triển khai. Tôi thậm chí đã thử thêm tập tin vào phần 'Triển khai' của các thiết lập thử nghiệm mà không hoạt động. Nó bật ra rằng vấn đề có liên quan đến nền tảng thử nghiệm.

Tôi có máy 64 bit và cả dự án tôi đã thử nghiệm và mục tiêu nền tảng của dự án thử nghiệm đơn vị là 'CPU bất kỳ'.

tôi thấy rằng mục triển khai chỉ được sao chép nếu tôi chọn 'Chạy thử nghiệm trong một quá trình 64 bit trên máy tính 64 bit".

1

Chúng tôi đã có một tình huống tương tự tại nơi làm việc, nơi các thuộc tính DeploymentItem không hoạt động như mong đợi Chúng tôi cũng sử dụng các máy 64 bit, với nền tảng dự án được đặt ở "CPU bất kỳ". Như một giải pháp, chúng tôi đã đưa vào tệp yêu cầu của bài kiểm tra đơn vị dưới dạng liên kết từ dự án thử nghiệm đơn vị và đặt "Sao chép sang thư mục đầu ra" "Copy Always Always"

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