Выполнение тестов на основе данных
Убедитесь, что вы знаете, как создавать тесты на основе данных и как выполнять тесты с помощью 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 и в противном случае) вместе с метаданными и значениями данных, доступными и указанными на различных уровнях.
Ознакомьтесь с переопределением метаданных на уровне строки, указанием типов параметров массива и примером на основе простых данных, например пошаговые инструкции.