Как указать DisplayName для модульного теста, определенного с помощью XML DataSource? - PullRequest
0 голосов
/ 05 августа 2020

Я пишу несколько модульных тестов, которые требуют запуска одного и того же теста, но с несколькими разными входами / ожидаемыми выходами. Для удобства тестовые данные хранятся в XML.

Это представляется возможным при указании данных с помощью атрибута DataRow для предоставления DisplayName. Я не могу найти способ сделать то же самое при указании данных с помощью DataSource. Я попытался добавить атрибут DisplayName в свой XML, он не фильтруется. Результат теста относится только к «Строке данных i», что на первый взгляд бесполезно.

В этом случае нецелесообразно предоставлять тестовые данные с помощью атрибута DataRow.

[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
            "TestCases.xml",
            "TestCase",
            DataAccessMethod.Sequential)]
public void TestMethod1()
{
   // blah
}

[TestMethod]
[DataRow(null, DisplayName="Null input test case")]
public void TestMethod2(object input)
{
   // blah
}

Результат первого случая:

  1. TestMethod1 Duration: -ms
  2. TestMethod1 (Data Row 0) Duration: -ms

Результат второго случая:

  1. TestMethod2 Duration: -ms
  2. Продолжительность теста нулевого ввода: -ms

Пример XML использовано:

<Rows>
   <TestCase>
      <In>input1</In>
      <Out>output1</Out>
   </TestCase>
   <TestCase>
      <In>input2</In>
      <Out>output2</Out>
   </TestCase>
</Rows>

Мне также не удалось вручную изменить текущее имя теста через TestContext.

Было бы идеально, если бы можно было сделать примерно так:

<Rows>
   <TestCase DisplayName="My first case">
      <In>input1</In>
      <Out>output1</Out>
   </TestCase>
   <TestCase DisplayName="My second case">
      <In>input2</In>
      <Out>output2</Out>
   </TestCase>
</Rows>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...