2011-01-27 38 views
8

Tôi có một dự án thử nghiệm trong một giải pháp Visual Studio 2010, thử nghiệm một dự án khác là một tiện ích FTP. Các dự án thử nghiệm cần phải tập tin FTP ở đây và ở đó, vì vậy tôi sử dụng một tập tin thử nghiệm để vượt qua các phương pháp tiện ích và xác minh nó được tải lên/lưu trữ/etc. Trong dự án thử nghiệm của tôi, tôi có một thư mục trong thư mục gốc của nó được gọi là TestFiles, với một tệp .txt duy nhất trong đó. Tôi muốn có nó đến nơi bất cứ khi nào ai đó kiểm tra các giải pháp từ kiểm soát nguồn và chạy các bài kiểm tra đơn vị, rằng các tập tin trong thư mục đó được lấy và sử dụng trong các bài kiểm tra đơn vị FTP.Thực hành tốt nhất để sử dụng các tệp/thư mục thử nghiệm trong Visual Studio 2010 Các dự án thử nghiệm C#

Tôi đã cố gắng sử dụng này, và các biến thể trong hậu build dòng lệnh sự kiện, nhưng không có may mắn:

copy $(ProjectDir)TestFiles\Test.txt $(ProjectDir)Debug\bin\Test.txt 

Tất cả tôi thực sự muốn làm là đảm bảo rằng tôi có thể sử dụng một đường dẫn tương đối cho bất kỳ tệp thử nghiệm cục bộ nào, để đảm bảo không gặp sự cố bất kể ai trong nhóm của tôi kiểm tra dự án (hoặc nếu Team Foundation Server chạy xây dựng tự động và kích hoạt kiểm tra đơn vị cho dự án của tôi).

Tôi hiện đang cố gắng để truy cập vào các tập tin trong các thử nghiệm đơn vị của tôi như thế này, vì vậy mà tôi chỉ cần lấy nó ra khỏi khu vực debug:

ftp.uploadThisFileSomewhere(
AppDomain.CurrentDomain.BaseDirectory + "\\TestFiles\\Test.txt"); 

Vì vậy, đây có phải là cách thích hợp để lấy một bài kiểm tra tập tin? Tôi không nghĩ là vậy, nhưng tôi dường như không thể tìm ra một tài liệu hay nhất về nó. Nếu nó đủ tốt, làm thế nào để bạn sao chép/đảm bảo một vị trí tương đối bất kể dự án được xây dựng/chạy ở đâu?

Trả lời

7

Thực tiễn được đề xuất là sử dụng thuộc tính DeploymentItem cho mỗi mục cần được tự động kiểm tra trong quá trình MSTest.

Có một số bước để làm theo, từ việc xác định các mục, để đảm bảo mỗi tệp có thuộc tính chính xác, blah blah blah. Vì vậy, tôi đã viết một ánh sáng tốt đẹp của các hướng dẫn về cách làm điều này.

Have a read of a detailed description about how to do this.

+0

các tệp có nên được lưu trữ trong một thư mục duy nhất để quản lý tốt hơn không? – noocyte

+0

Đó là hoàn toàn tùy thuộc vào bạn, bạn đời :: sở thích cá nhân. –

1

Bao gồm tệp trong dự án của bạn và đặt thuộc tính của nó thành Nội dung và Sao chép nếu mới hơn. Nó sẽ được sao chép vào thư mục build/run ở cả hai bản debug và release.

0

Xin chào, tôi đã gặp vấn đề tương tự và tôi đã sử dụng Tài nguyên. Tôi đã tạo TestFiles.resx trong dự án thử nghiệm của mình, tiếp theo tôi đã thêm tệp. Và trong các đơn vị kiểm tra tôi đã sử dụng ví dụ TestFiles.SomeFile và tôi có thể quên đường dẫn, vv

+0

@Mercinn - vui lòng tham khảo liên kết trong câu trả lời của tôi ở trên :) –

+0

Tính năng này có hoạt động với Nunit không? – marcinn

+0

Không. bài viết của tôi ở trên CHỈ là về MSTest. NUnit sẽ có tương tự như implimentation nhưng không chính xác như nhau, như bài viết của tôi .. vì nó có MSTest cụ thể cụ. –

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