![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Ошибки DUnit при запуске от имени 'Local System' в Windows Server 2012 R2 с Delphi XE2Delphi , ОС и Железо , WindowsВ статье рассмотрим проблему, связанную с выполнением юнит-тестов, написанных с использованием DUnit и компилятора Delphi XE2, на сервере Windows Server 2012 R2 в среде Jenkins. Проблема заключается в том, что при запуске тестового исполняемого файла от имени учетной записи 'Local System' возникает ошибка выполнения с кодом 216. В то же время, при запуске того же файла от имени администратора или обычного пользователя, тесты работают корректно. Описание проблемыПри выполнении сборки в Jenkins на Windows-славе с Windows Server 2012R2 Standard x64, происходит компиляция и запуск юнит-тестов, использующих DUnit и Delphi XE2. Проблема возникает на этапе запуска тестового исполняемого файла: он выдает ошибку выполнения с кодом 216 без создания файла с результатами тестирования. Используется Ожидаемое поведениеТестовый исполняемый файл должен производить вывод, печатая точку для каждого запущенного теста. Исследование проблемыАвтор вопроса провел исследование, которое включало:
ПодозренияВозможно, DUnit или Delphi XE2 требуют разрешения на создание видимого пользовательского интерфейса, которого лишена учетная запись 'Local System'. Подтвержденный ответУчитывая, что учетная запись 'Local System' не имеет доступа к пользовательскому интерфейсу, можно предположить, что проблема связана с отсутствием необходимых прав для работы некоторых компонентов DUnit или Delphi XE2, которые могут требовать взаимодействия с пользовательским интерфейсом даже в консольном режиме. Альтернативный ответДля решения проблемы можно попробовать следующие шаги:
Пример кодаПример кода на Object Pascal, который может быть использован в консольном приложении DUnit, выглядит следующим образом:
Этот код запустит юнит-тесты, и если все настроено правильно, вы увидите результаты в консоли. ЗаключениеПроблема с запуском юнит-тестов DUnit от имени 'Local System' может быть решена путем пересмотра настроек безопасности и запуска тестов от имени пользователя с необходимыми правами. Это позволит избежать ошибок, связанных с ограничениями учетной записи 'Local System'. В статье обсуждается проблема с запуском юнит-тестов на Delphi XE2 в среде Windows Server 2012 R2, когда тесты не работают от имени 'Local System', но функционируют корректно при запуске от учетной записи администратора или обычного пользовател Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |