Поделиться через


Выполнение тестов на основе данных

Убедитесь, что вы знаете, как создавать тесты на основе данных и как выполнять тесты с помощью TAEF перед началом работы с советами и рекомендациями по выполнению DataDrivenTests с помощью TAEF . Может быть полезно обновить память о том, как запрос выбора работает с TAEF, а также.

В этом разделе описывается выполнение тестов на основе таблиц, но тот же базовый принцип применяется к тестам на основе PICT и на основе WMI на основе данных.

Если вы просто хотите выполнить все тесты, включая тесты на основе данных, нет разницы от того, как вы обычно будете запускать его с помощью TAEF. Рассмотрим пример запуска CPP\DataDrivenExample и CSharp\DataDrivenExample вместе с помощью TAEF. Помните, что по умолчанию TAEF выполняет тесты вне proc. Если вы хотите запустить их inproc, используйте переключатель "/inproc".

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll

Ознакомьтесь с xml-файлами и файлами заголовков, которые указывают метаданные. Выполните только тесты datadriven с приоритетом=1 следующим образом:

TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"

Помните, что метаданные, указанные на уровне строки в XML-файле, переопределяют метаданные, указанные на уровне разработки TestMethod.

Давайте рассмотрим немного больше возможностей выполнения тестов на основе данных с помощью TAEF. Предположим, вы хотите повторно провести только 3-ю строку в функции FirstTable(). Это можно сделать с помощью индекса строки, которая будет иметь значение 2 (индекс начинается с 0):

TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"

Обратите внимание, что критерий выбора теперь имеет новое пространство имен "@Data:", которое можно специально использовать для тестов на основе данных. При выполнении приведенного выше теста вы заметите, что вместо обычного "#index", добавляемого к именам тестов в случае тестов на основе данных, вы добавили "#Black" к имени теста - это специальные метаданные name, указанные для этой строки. Дополнительные сведения см. в разделе "Указание метаданных на уровне строки". Несмотря на это специальное имя, вы по-прежнему можете выбрать его. Выбор индекса может пройти долгий путь к выбору диапазона строк для действительно большого набора данных. Например(гипотетический - не в примере) если у вас есть тесты на основе данных с 100 строками (max index = 99), и вы хотите выполнять только строки с индексом больше 10 и менее 20, теперь можно легко указать следующее:

TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"

Во многих случаях требуется повторно выполнить повторную подготовку на основе определенного значения данных и не придется идти через проблемы при поиске индекса. В этом случае можно снова использовать пространство имен "@Data:". Теперь предположим, что в собственном примере модульных тестов (см. статью "Создание управляемых данными тестов"), необходимо выполнить только те случаи, когда "Theme" — "AeroBasic".

TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"

Это будет отображаться в консоли следующим образом:

StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0

Вы также можете использовать /listproperties для тестов datadriven, чтобы просмотреть наборы данных и метаданные (сочетание метаданных, указанных на уровне метода теста и на уровне строк) для теста на основе данных. Таким образом,

TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties

перечисляет все методы (datadriven и в противном случае) вместе с метаданными и значениями данных, доступными и указанными на различных уровнях.

Ознакомьтесь с переопределением метаданных на уровне строки, указанием типов параметров массива и примером на основе простых данных, например пошаговые инструкции.