2013-07-05 29 views
8

Tôi có giải pháp có ứng dụng bảng điều khiển và kiểm tra đơn vị.Đường dẫn tương đối trên dự án thử nghiệm đơn vị C#

var target = new Validator(); 
var targetFile = @"C:\Folder\SubFolder\AnotherSubFolder\Development\DEV\src\UnitTest\TargetFolder\file.xml"; 

bool actual = target.Validate(targetFile); 
Assert.AreEqual(true, actual); 

Trình xác thực nằm trong dự án ứng dụng bảng điều khiển, trong khi tệp của tôi nằm trong thư mục bên trong dự án thử nghiệm đơn vị.

Kiểm tra đơn vị này đang trôi qua, tuy nhiên tôi muốn đảm bảo rằng khi tôi đăng nhập vào máy chủ tfs hoặc build của tôi, nó vẫn có thể định vị targetFile của tôi.

Tôi sẽ thay đổi đường dẫn của targetFile như thế nào?

Cảm ơn trước!

+0

Bạn đang sử dụng khung kiểm tra đơn vị nào? –

+0

Framework? Nó là 4.0 – Gerald

Trả lời

0

Vị trí của Validator không được liên quan. Mọi đường dẫn tương đối phải liên quan đến thư mục mà ứng dụng thử nghiệm của bạn đang thực thi, vì vậy, chỉ cần đặt targetFile là một đường dẫn tương đối từ đó. Sau đó, hãy chắc chắn rằng bạn đang chạy thử nghiệm của bạn từ cùng một vị trí tương đối trên máy chủ bulid như trên máy dev của bạn.

Mẹo thêm: sử dụng Assert.IsTrue(actual);

5

Bạn có thể tham khảo các thư mục như dưới đây.

"..\..\TargetFolder\file.xml" 
7

Nếu tôi hiểu vấn đề của bạn một cách chính xác, nó không phải là tốt mã sản phẩm (trong ứng dụng giao diện điều khiển) phụ thuộc vào một mục trong dự án thử nghiệm, vì vậy tôi khuyên bạn nên di chuyển file.xml cho dự án mã sản phẩm.

Để giải quyết vấn đề đường dẫn của bạn, tôi nghĩ rằng phương pháp tốt nhất là sử dụng Copy to Output mục tài sản như Sao chép luôn hoặc Sao chép nếu mới hơn, mà bạn có thể tìm thấy trong cửa sổ VS Properties.

Kiểm tra các bước sau.

  1. Tạo thư mục nếu cần để đặt trong file.xml trong dự án sản phẩm (ví dụ: Thư mục dữ liệu).
  2. Đặt file.xml vào thư mục.
  3. Đi tới cửa sổ thuộc tính VS cho file.xml.
  4. Set Build Action-KhôngCopy to Output mục-Sao chép luôn hoặc Sao chép nếu mới hơn.
  5. xây dựng và thực hiện kiểm tra đơn vị như

    Assert.IsTrue(File.Exists(@"Data\file.xml")); 
    

    Trong trường hợp này, VS sẽ tự động làm cho các thư mục dữ liệu với file.xml dưới thư mục đầu ra của thử nghiệm poject.

+0

Đây là những gì tôi hiện đang làm ngay bây giờ. Tuy nhiên, tôi không biết làm thế nào để thay đổi đường dẫn của tập tin mục tiêu là một đường dẫn tương đối để tôi có thể chắc chắn rằng nó sẽ không có bất kỳ vấn đề trên máy chủ xây dựng. – Gerald

+1

Tôi nghĩ rằng điều quan trọng là nắm bắt vị trí hiện tại trong dự án thử nghiệm. Thông thường, vị trí chính xác giống với thư mục đầu ra (bin \ debug) của dự án thử nghiệm. Theo khuôn khổ kiểm tra, thư mục đầu ra có thể được sao chép ở một nơi khác, được gọi là bản sao bóng. Tuy nhiên, trong trường hợp này không có vấn đề gì vì đường dẫn tương đối không bị hỏng. –

+0

Cảm ơn Jin-Wook! Rất hữu ích. – Gerald

2

Tôi đã tìm ra giải pháp cho vấn đề của mình.Tôi đã sử dụng điều này:

"..\..\..\TestFileFolder\myFile.xml" 
Các vấn đề liên quan