Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся рекомендации по устранению неполадок для Microsoft.Testing.Platform.
Коды выхода
Microsoft.Testing.Platform использует известные коды выхода для передачи ошибок теста или ошибок приложения. Коды выхода начинаются 0 и не являются отрицательными.
| Код выхода | Сведения |
|---|---|
0 |
Код 0 выхода указывает на успешность. Все тесты, которые были выбраны для выполнения, выполнялись до завершения, и не было ошибок. |
1 |
Код 1 выхода указывает на неизвестные ошибки и действует как универсальный механизм. Чтобы найти дополнительную информацию и подробности об ошибках, посмотрите в выходных данных. |
2 |
Код 2 выхода используется для указания того, что произошел по крайней мере один тестовый сбой. |
3 |
Код 3 выхода указывает, что тестовый сеанс прерван. Сеанс можно прервать с помощью ctrl+C, например. |
4 |
Код 4 выхода указывает, что настройка используемых расширений недопустима, а сеанс тестов не может выполняться. |
5 |
Код 5 выхода указывает, что аргументы командной строки, переданные тестовой приложению, были недопустимыми. |
6 (больше не используется) |
Код выхода 6 больше не создается платформой; ранее он указывал, что тестовый сеанс использовал нереализованную функцию. |
7 |
Код 7 выхода указывает, что тестовый сеанс не удалось завершить успешно и, вероятно, завершился сбоем. Это может быть вызвано тестовой сессией, которая была запущена через точку расширения контроллера тестирования. |
8 |
Код 8 выхода указывает, что во время тестового сеанса не было выполнено ни одного теста. |
9 |
Код 9 выхода указывает, что минимальная политика выполнения для выполненных тестов была нарушена. |
10 |
Код 10 выхода указывает, что тестовый адаптер, Testing.Platform Test Framework, MSTest, NUnit или xUnit не смогли выполнить тесты по инфраструктурной причине, не связанной непосредственно с самим тестом. Примером может быть неудача в создании тестовой фикстуры, необходимой для проверок. |
11 |
Код 11 выхода указывает, что тестовый процесс завершится, если зависимый процесс завершает работу. |
12 |
Код 12 выхода указывает, что тестовый сеанс не удалось запустить, так как клиент не поддерживает ни одну из поддерживаемых версий протокола. |
13 |
Код 13 выхода указывает, что тестовый сеанс был остановлен из-за достижения указанного количества максимальных неудачных тестов с помощью --maximum-failed-tests параметра командной строки. Дополнительные сведения см. в разделе "Параметры" в справочнике по параметрам интерфейса командной строки Microsoft.Testing.Platform |
Сведения о включении подробного ведения журнала и устранении неполадок см. в разделе "Ведение журнала диагностики".
Игнорировать определенные коды выхода
Microsoft.Testing.Platform по умолчанию строгий, но позволяет настраивать конфигурацию. Таким образом, пользователи могут решить, какие коды выхода следует игнорировать (код 0 выхода возвращается вместо исходного кода выхода).
Чтобы игнорировать определенные коды выхода, используйте параметр командной --ignore-exit-codeTESTINGPLATFORM_EXITCODE_IGNORE строки или переменную среды. Допустимый формат — это разделенный точкой с запятой список кодов выхода, которые следует игнорировать (например, --ignore-exit-code 2;3;8). Распространенный сценарий заключается в том, что тестовые сбои не должны привести к ненулевому коду выхода (который соответствует игнорируемому коду 2выхода).
Ведение журнала диагностики
Платформа предоставляет встроенное ведение журнала диагностики для устранения неполадок при выполнении тестов. Вы можете включить ведение журнала диагностики с помощью параметров командной строки или переменных среды.
Параметры командной строки
Следующие параметры платформы предоставляют полезные сведения для устранения неполадок тестовых приложений:
--info--diagnostic--diagnostic-synchronous-write--diagnostic-verbosity--diagnostic-file-prefix--diagnostic-output-directory
Переменные среды
Журналы диагностики также можно включить с помощью переменных среды:
| Имя переменной среды | Description |
|---|---|
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 |
Позволяет встроенному средству ведения журнала файлов синхронно записывать журналы. Полезно для сценариев, когда вы не хотите терять записи журнала (если процесс завершается сбоем). Это замедляет выполнение теста. |
Замечание
Переменные среды имеют приоритет над аргументами командной строки.
Устранение ошибок конфигурации
Microsoft.Testing.Platform.MSBuild
Ниже приведены распространенные ошибки конфигурации, связанные с Microsoft.Testing.Platform.MSBuild.
ошибка CS8892: метод "TestingPlatformEntryPoint.Main(string[])" не будет использоваться в качестве точки входа, так как найдена синхронная точка входа Program.Main(string[])".
При ручном определении точки входа (Main) в тестовом проекте или при ссылке на тестовый проект из приложения, которое уже имеет точку входа, это приводит к конфликту с создаваемой точкой входа Microsoft.Testing.Platform. Чтобы избежать этой проблемы, выполните одно из следующих действий:
Удалите определяемую вручную точку входа, обычно
Mainметод в Program.cs, и позвольте платформе тестирования создать её для вас.Отключите создание точки входа, задав свойство
<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>MSBuild.Полностью отключите транзитивную зависимость для
Microsoft.Testing.Platform.MSBuild, задав свойство<IsTestingPlatformApplication>false</IsTestingPlatformApplication>MSBuild в проекте, который ссылается на тестовый проект. Это необходимо при ссылке на тестовый проект из проекта, отличного от тестового проекта, например консольного приложения, ссылающегося на тестовое приложение.
Microsoft.Testing.Extensions.Fakes
Ошибка Fakes: не удалось определить путь к профилировщику из значений переменных среды COR_PROFILER_PATH и COR_PROFILER.
Эта ошибка может возникать, если не все сборки Fakes присутствуют в папке bin.
- Убедитесь, что проект использует MSTest.SDK или ссылается на Microsoft.Testing.Extensions.Fakes.
- Для проектов .NET Framework не используйте параметр
<PlatformTarget>AnyCPU</PlatformTarget>, так как это приводит к тому, что NuGet не копирует все файлы в папку bin.