2012-01-05 38 views
9

Tôi có một dự án thử nghiệm đơn vị được thiết lập trong cùng một giải pháp như dự án của tôi trong Visual Studio. Đơn vị kiểm tra đang được thực hiện thông qua xây dựng trong công cụ kiểm tra đơn vị trong Visual Studio (bao gồm trong phiên bản Premium và cao hơn). Tôi cần tải một tệp nằm trong đường dẫn của dự án, chứ không phải dự án thử nghiệm, trong khi chạy thử nghiệm đơn vị trong dự án thử nghiệm.Cách lấy đường dẫn dự án từ dự án thử nghiệm?

Hồ sơ bao gồm là một phần của dự án chính, và có các thuộc tính sau:

  • Build Action: Nội dung
  • Copy to Output Directory: Luôn

tôi cần phải viết một bài kiểm tra đơn vị cho một hàm phụ thuộc vào tệp này, hoặc tôi sẽ nhấn một trạng thái lỗi và sẽ không thể viết các bài kiểm tra cho phạm vi phủ sóng 100% trên hàm đó.

Làm cách nào để tôi nhận được đường dẫn thực thi của dự án thực tế từ dự án thử nghiệm đơn vị?

Chỉnh sửa: Chức năng cụ thể đọc tất cả các dòng trong tệp cấu hình và lưu trữ chúng cùng một lúc trong danh sách. Mẫu mã sau:

public List<string> LoadConfigFile() { 
    List<string> models = new List<string>(); 
    StreamReader sr = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + @"\" + Properties.Resources.SupportedModelsConfigFile); 

    while ((line = sr.ReadLine()) != null) 
    { 
     models.Add(line); 
    } 

    sr.Close(); 
    return models; 
} 

Vấn đề chính: Application.ExecutablePath hoạt động tốt khi chạy chương trình bên trong hoặc bên ngoài của IDE, nhưng khi chạy thử nghiệm đơn vị, nó sẽ gửi tôi vào một thư mục trong visual studio, đặc biệt là thư mục này:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe 
+0

bạn đang làm gì với các tập tin? –

+0

cũng nếu bạn có mã đã viết có lẽ dán mã sẽ là một ý tưởng tốt và bình luận trong mã mà bạn đang gặp vấn đề nếu có và ở đâu trong mã mà bạn muốn thực hiện hoặc thêm một số chức năng bổ sung ... – MethodMan

Trả lời

13

bạn có thể thiết lập một biến để có được con đường nơi mà các ứng dụng đang được phóng từ

var execPath = AppDomain.CurrentDomain.BaseDirectory; 
+0

Điều này đã cho tôi vào đường dẫn thư mục chính xác. Ngoài ra, tôi cần phải bao gồm tập tin cấu hình của tôi trong triển khai (Test -> Edit Test Settings -> local.test, nhấn Deployment, và thêm tập tin trong câu hỏi. Điều này sẽ thêm các tập tin bên ngoài vào thư mục kết quả test, mà Visual Studio sử dụng khi chạy thử nghiệm đơn vị – ford

+0

bạn đã nghĩ đến việc xem xét sử dụng tệp tài nguyên – MethodMan

+0

Tôi đã sử dụng tệp tài nguyên ở nơi khác, nhưng trong trường hợp này, nó không phù hợp – ford

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