Создавайте методы модульного теста динамически во время выполнения в MSTest.

Есть ли аналог SuiteBuilder в MSTest? не смог найти пока.

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

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

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

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

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


person Vin    schedule 02.12.2009    source источник


Ответы (2)


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

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

person mbx    schedule 21.03.2011

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

Тест:

[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.

person frast    schedule 18.05.2011