2009-12-02 2 views
8

Есть ли эквивалент SuiteBuilder в MSTest? пока не удалось найти.Динамически создавать методы тестирования модулей во время выполнения в MSTest

У меня есть куча xml-файлов, каждая из которых рассматривается как сопоставленная с методом тестирования. Поскольку существует 100 из них и вручную писать тесты для каждого из них, это не очень хорошая идея.

Итак, в nunit вы можете реализовать ISuiteBuilder и иметь тестовые примеры динамически и отображаться как многие методы тестирования.

Я ищу способ сделать то же самое в MSTest.

Я изучил атрибут DataSource, но он удовлетворяет 1 файлу datasource xml/csv для каждого тестового метода, заставляя меня писать 100 методов тестирования. Я также хочу, чтобы каждый XML-файл был разделен и не объединял их всех в один огромный файл, и в этом случае он стал бы незаменимым.

Кто-нибудь пробовал это или имеет какие-либо предложения?

ответ

2

Не совсем то, что вы просили, но вы можете использовать pex для автоматизированных и параметрируемых тестов с ящиками. Таким образом, вам не нужно вручную делать все это. Pex поддерживает MSTest, а также NUnit. Сгенерированные тесты используют дополнительный файл, вам не нужны никакие файлы xml.

Но я думаю, что вы не можете легко использовать существующие .xml-файлы из NUnit и делиться ими с MSTest с помощью pex - если это то, что вы намеревались.

1

Я уже сделал это. Вот то, что вам нужно будет сделать:

Тест:

[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 и test2.xml должны существовать в каталоге MyTestData.

+0

Почему downvote? – frast

Смежные вопросы