2009-12-02 31 views
8

Có tương đương với SuiteBuilder trong MSTest không? không thể tìm thấy một cho đến nay.Tạo phương pháp thử nghiệm đơn vị động trong thời gian chạy trong MSTest

Tôi có một loạt tệp xml, mỗi tệp được xem là ánh xạ tới một phương pháp thử nghiệm. Vì có 100 trong số này và để tự viết các bài kiểm tra cho mỗi trong số này, không phải là một ý tưởng tốt.

Vì vậy, trong nunit bạn có thể triển khai ISuiteBuilder và có các trường hợp Kiểm tra chạy động và hiển thị như nhiều phương pháp thử nghiệm đó.

Tôi đang tìm cách để thực hiện điều tương tự trong MSTest.

Tôi đã xem thuộc tính DataSource, nhưng nó phục vụ cho 1 nguồn dữ liệu xml tệp/csv trên mỗi phương pháp thử nghiệm, buộc tôi phải viết 100 phương pháp thử nghiệm. Tôi cũng muốn giữ từng tập tin xml riêng biệt và không câu lạc bộ tất cả trong 1 tập tin lớn, trong trường hợp đó nó sẽ trở thành unmaintainable.

Có ai đó đã thử điều này hoặc có bất kỳ đề xuất nào không?

Trả lời

2

Không chính xác những gì bạn đã yêu cầu, nhưng bạn có thể sử dụng pex để kiểm tra hộp trắng tự động và có thể tham số. Bằng cách đó, bạn không cần phải tự làm tất cả những thứ đó. Pex hỗ trợ MSTest cũng như NUnit. Các thử nghiệm đã tạo sử dụng một tệp phụ, bạn không cần bất kỳ tệp xml nào.

Nhưng tôi nghĩ bạn không thể dễ dàng sử dụng các tệp .xml hiện có của bạn từ NUnit và chia sẻ chúng với MSTest bằng cách sử dụng pex - nếu đó là những gì bạn dự định.

1

Tôi đã làm điều này rồi. Dưới đây là những gì bạn sẽ cần phải làm:

Các thử nghiệm:

[TestMethod] 
[DeploymentItem("MyTestData")] 
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", 
        "|DataDirectory|\\MyTestData.xml", 
        "Test", 
        DataAccessMethod.Sequential)] 
public void MyTest() 
{ 
    string file = TestContext.DataRow[0].ToString(); 
    string expectedResult = TestContext.DataRow[1].ToString(); 
     // TODO: Test something 
} 

MyTestData.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<Rows> 
    <Test> 
    <File>test1.xml</File> 
    <Result>1</Result> 
    </Test> 
    <Test> 
    <File>test2.xml</File> 
    <Result>2</Result> 
    </Test> 
</Rows> 

test1.xml và test2.xml phải tồn tại trong thư mục MyTestData.

+0

Tại sao bạn nên downvote? – frast

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