Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Убедитесь, что вы знаете, как создавать тесты на основе данных и как выполнять тесты с помощью TAEF перед началом работы с советами и рекомендациями по выполнению DataDrivenTests с помощью TAEF. Может быть полезно обновить память о том, как запрос выбора работает с TAEF.
В этом разделе специально рассматривается выполнение тестов на основе таблиц, но те же базовые принципы применяются и к тестам на основе данных PICT и WMI.
Если вы просто хотите выполнить все тесты, включая тесты на основе данных, нет разницы от того, как вы обычно будете запускать его с помощью TAEF. Рассмотрим пример запуска CPP\DataDrivenExample и CSharp\DataDrivenExample вместе с помощью TAEF. Помните, что по умолчанию TAEF выполняет тесты вне процесса. Если вы хотите запустить их inproc, используйте переключатель "/inproc".
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll
Ознакомьтесь с xml-файлами и файлами заголовков, которые указывают метаданные. Выполните только ориентированные на данные тесты с приоритетом=1, например:
TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"
Помните, что метаданные, указанные на уровне строки в XML-файле, переопределяют метаданные, указанные на уровне разработки TestMethod.
Давайте рассмотрим немного больше возможностей выполнения тестов на основе данных с помощью TAEF. Предположим, вы хотите воспроизвести только третью строку в функции 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 для тестов на основе данных, чтобы просмотреть наборы данных и метаданные (сочетание метаданных, указанных на уровне метода теста и на уровне строки) для теста на основе данных. Так
TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties
перечисляет все методы (datadriven и другие) вместе с метаданными и значениями данных, которые доступны и указаны на различных уровнях.
Ознакомьтесь, например, с переопределением метаданных на уровне строки, указанием типов параметров массива и простым примером, основанным на данных для более детального изучения.