Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MTP поддерживает использование файлов конфигурации и переменных среды для настройки поведения тестовой платформы. В этой статье описаны параметры конфигурации, которые можно использовать для настройки тестовой платформы.
testconfig.json
Тестовая платформа использует файл конфигурации с именем [имя_приложения],.testconfig.json для настройки поведения тестовой платформы. Файл testconfig.json — это JSON-файл, содержащий параметры конфигурации для тестовой платформы.
Файл testconfig.json имеет следующую структуру:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
Платформа автоматически обнаруживает и загружает файл [имя_приложения].testconfig.json, расположенный в выходном каталоге тестового проекта (близко к исполняемому файлу).
При использовании Microsoft.Testing.Platform.MSBuildможно просто создать файл testconfig.json, который будет автоматически переименован в [имя_приложения].testconfig.json и перемещен в выходной каталог тестового проекта.
Начиная с MTP 1.5, можно использовать аргумент --config-file командной строки, чтобы указать путь к testconfig.json. Этот файл имеет приоритет над файлом [appname].testconfig.json.
Заметка
Файл [appname].testconfig.json будет перезаписан при последующих сборках.
Используйте централизованный testconfig.json
Если вы хотите, чтобы один файл testconfig.json использовался несколькими тестовыми проектами совместно, вы можете разместить его в централизованном месте и передать его через --config-file. Если MSBuild доступен (например, dotnet test или dotnet run), можно использовать TestingPlatformCommandLineArguments свойство MSBuild для автоматического передачи аргумента. Добавление этого кода в каталог Directory.Build.props в корневом каталоге репозитория гарантирует, что все тестовые проекты используют ту же конфигурацию:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Приоритет конфигурации
Если один и тот же параметр можно указать несколькими способами, MTP определяет его значение в следующем порядке (используется первое совпадение):
- Аргументы командной строки (например,
--results-directory) - Переменные среды
- параметры testconfig.json
- Встроенные значения по умолчанию
Параметры платформы
Раздел platformOptions файлаtestconfig.json настраивает основное поведение тестовой платформы. В следующей таблице перечислены все поддерживаемые параметры платформы:
| Entry | По умолчанию | Description |
|---|---|---|
resultDirectory |
TestResults |
Каталог, в котором размещаются результаты теста. Может быть относительным путём (отсчитываемым от текущего рабочего каталога) или абсолютным путём. Параметр --results-directory командной строки имеет приоритет. |
exitProcessOnUnhandledException |
false |
Если установлено значение true, процесс узла тестирования немедленно завершает работу при необработанных исключениях вместо корректного завершения работы. Переменная TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION среды (значения 1 или 0) имеет приоритет. |
Заметка
Для расширенных сценариев существуют дополнительные параметры внутренней платформы (например, время ожидания именованного канала для контроллеров узла тестирования). Эти параметры предназначены для использования инфраструктуры и не рассматриваются здесь.
Пример:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Параметры расширения доступны только для интерфейса командной строки
Возможности расширения, такие как дамп сбоя, дамп зависания, повторные попытки, TRX-отчеты и покрытие кода, не настраиваются с помощью testconfig.json. Эти функции настраиваются исключительно с помощью аргументов командной строки.
Полный справочник по параметрам командной строки см. в справочнике по параметрам командной строки MTP.
Параметры платформы тестирования
Платформы тестирования могут определять собственные разделы конфигурации в файлеtestconfig.json . Ознакомьтесь с документацией по тестовой платформе:
- MSTest: настройка MSTest — testconfig.json
- xUnit.net версии 3: xUnit.net testconfig.json
- NUnit: см. документацию NUnit по последней версии поддержки Microsoft.Testing.Platform.
- TUnit: см. документацию TUnit, чтобы получить актуальную информацию о поддержке Microsoft.Testing.Platform.
Пример testconfig.json
В следующем примере показан файлtestconfig.json , который настраивает параметры платформы и параметры MSTest:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Переход с .runsettings на testconfig.json
Если вы переходите с файла .runsettings, в следующей таблице показано соответствие распространённых параметров их эквивалентам или альтернативам в testconfig.json:
| Параметр .runsettings | эквивалент файла testconfig.json | Примечания |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Нет эквивалента | Параллелизм на уровне процесса управляется с помощью dotnet test --max-parallel-test-modules или параметра MSBuild /m. |
MSTest/* |
mstest.* |
См . раздел "Настройка MSTest— testconfig.json". |
xUnit/* |
xUnit.* |
См. xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Только через интерфейс командной строки | Используйте --report-trx или аналогичные параметры CLI. |
DataCollectionRunSettings (виновато) |
Только через интерфейс командной строки | Используйте параметры CLI --crashdump и --hangdump. См. сбои и зависание дампов. |
DataCollectionRunSettings (покрытие) |
Только интерфейс командной строки | Используйте параметр командной строки --coverage. См. раздел "Покрытие кода". |
TestRunParameters |
--test-parameter Интерфейс командной строки (CLI) |
Используйте --test-parameter key=value в командной строке. |
Переменные среды
Переменные среды можно использовать для предоставления некоторых сведений о конфигурации среды выполнения.
Заметка
Переменные среды имеют приоритет над параметрами конфигурации в файле testconfig.json.
переменная среды TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION
Если задано значение 1, процесс тестового узла немедленно завершает работу с необработанными исключениями. Если задано значение 0, платформа позволяет корректно завершить работу. Этот параметр имеет приоритет над platformOptions:exitProcessOnUnhandledException конфигурацией.
переменная среды TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT
Переопределяет время ожидания по умолчанию (300 секунд), используемое для подключений через именованный канал между контроллером тестового хоста и тестовым хостом. Значение должно быть строкой, совместимой с TimeSpan.
переменная среды TESTINGPLATFORM_UI_LANGUAGE
Начиная с MTP 1.5, эта переменная среды задает язык платформы для отображения сообщений и журналов с помощью значения языкового стандарта, например en-us. Этот язык имеет приоритет над языками пакета SDK Для Visual Studio и .NET. Поддерживаемые значения совпадают с значениями Visual Studio. Дополнительные сведения см. в разделе об изменении языка установщика в документации по установке Visual Studio.
переменная среды TESTINGPLATFORM_DIAGNOSTIC
Если задано значение 1, включает ведение журнала диагностики.
переменная среды TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY
Определяет уровень детализации, если диагностика включена. Доступные значения: Trace, Debug, Information, Warning, Errorили Critical.
переменная среды TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY
Выходной каталог журнала диагностики. Если он не указан, файл создается в каталоге TestResults по умолчанию.
переменная среды TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX
Префикс имени файла журнала. По умолчанию — "log_".
переменная среды TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE
Позволяет встроенному средству ведения журнала файлов синхронно записывать журналы. Полезно для сценариев, когда вы не хотите терять записи журнала (если процесс завершается сбоем). Это замедляет выполнение теста.
переменная среды TESTINGPLATFORM_EXITCODE_IGNORE
Разделенный точкой с запятой список кодов выхода, которые следует игнорировать. Если код завершения игнорируется, процесс вместо этого возвращает 0. Например, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 игнорирует тестовые сбои и сценарии без тестов.
Заметка
Переменные среды, связанные с диагностикой, имеют приоритет над соответствующими --diagnostic-* аргументами командной строки.