add
add copied to clipboard
[BUG] xddTestRunner не может запустить клиента тестирования под пользователем с паролем
Описание ошибки Если для запуска тестов используется пользователь с паролем, то при запуске клиента тестирования появляется запрос пароля.
Сценарий воспроизведения
- Добавить в тестируемую базу пользователя с паролем
- Запустить менеджер тестирования и открыть xddTestRunner
- Добавить дымовой тест открытия форм
- При запуске клиента тестирования появится запрос пароля
Ожидаемое поведение, если бы ошибки не было Запуск клиента тестирования выполняется под тем же пользователем, под которым запущен менеджер тестирования без запроса пользователя/пароля.
Лечится в обработке ./plugins/ТестКлиенты.epf в функции ПодключитьТестКлиент
вместо:
СтрокаЗапуска = СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт, ДопПараметры);
УправлениеПриложениями = КонтекстЯдра.Плагин("УправлениеПриложениями");
УправлениеПриложениями.ВыполнитьКомандуОСБезПоказаЧерногоОкна(СтрокаЗапуска, Ложь, Ложь);
сделать:
СтрокаЗапуска = КонтекстЯдра.СтрШаблон_(
"ENTERPRISE /IBConnectionString""%1""%2%3 /TestClient -TPort%4 /L%5 %6 /DisableStartupMessages",
СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""),
?(ПустаяСтрока(ИмяПользователя), "", " /N""" + ИмяПользователя + """"),
?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """"),
XMLСтрока(Порт),
ТекущийЯзык(),
ДопПараметры);
ЗапуститьСистему(СтрокаЗапуска);
Вроде логика использования так не ломается. Но еще лучше взять логику запуска клиента тестирования из bdd.
А если паролем является восемь пробелов? :)
@krasilnikovao 1. Это не имеет отношения к проблеме. 2. В функции СтрокаЗапускаТестКлиента строка запуска формируется ровно также.
@arkuznetsov а в чем разница с существующим кодом?
в том, что если пароль не передан кодом, 1С-как сама его подставит при выполнении ЗапуститьСистему ?
@arkuznetsov а в чем разница с существующим кодом?
в том, что если пароль не передан кодом, 1С-как сама его подставит при выполнении ЗапуститьСистему ?
Да, именно в этом. В тесте открытия форм вообще нет возможности передать пароль.
@arkuznetsov Проверял запуск своего исправления запусков тестов в командной строке?
у 1С есть баг - при подобном запуске она копипастит все параметры ком.строки из родительского процесса, в т.ч. параметр /Out ФайлЛога
и при попытке записи в файл лога в новом сеансе выдается модальная ошибки блокировки.
насколько я помню, в бдд-части это специально обходится через явное указание отдельного параметра /Out
@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования
@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования
а где этот параметр описан?
@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования
а где этот параметр описан?
отдельной документации в исходниках нет. но при запуске через vrunner help xunit есть описание этого параметра с примерами
Предлагаю тикет закрыть. @arkuznetsov
Получается, что пароль пользователя нужно задавать дважды один и тот же.
Первый раз в параметре --db-pwd
Второй раз в параметре --testclient. Это неудобно.
Ожидаемое поведение.
Параметр --testclient позволяет переопределить параметры подключения к тест-клиенту, но не заставляет определять их всегда при использовании пользователя с паролем.
Если в параметре --testclient пароль не задан, то используется пароль из параметра --db-pwd.