&НаКлиенте
Перем массивТестовыхПриложений;
&НаКлиенте
Процедура ТестДолжен_ПодключитьТестовыйКлиент() Экспорт
#Область Подключение_тестового_приложения
Состояние("Запуск сеанса пользователя...");
имяПользователя = "Зюба Светлана";
Пароль = "";
Порт = 1577;
ТаймаутОжиданияПриложенияВСекундах = 60;
ТестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах);
#КонецОбласти
КонецПроцедуры
&НаКлиенте
Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах)
Перем тестовоеПриложение;
строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Пароль, Порт);
ЗапуститьПриложение(строкаЗапуска);
тестовоеПриложение = Неопределено;
Попытка
Выполнить("тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));");
Исключение
тестовоеПриложение = Неопределено;
КонецПопытки;
Если тестовоеПриложение = Неопределено Тогда
ВызватьИсключение "Не удалось создать объект ТестируемоеПриложение."+Символы.ПС+
"Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)"+Символы.ПС+
"При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт ""Запускать как менеджер тестирования"".";
КонецЕсли;
Подключен = Ложь;
ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
ОписаниеОшибкиСоединения = "";
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
Попытка
тестовоеПриложение.УстановитьСоединение();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки();
КонецПопытки;
КонецЦикла;
сообщениеОшибки = "Не смогли установить соединение с тестовым приложением для пользователя "+ИмяПользователя+" !" + Символы.ПС + ОписаниеОшибкиСоединения;
Если Не Подключен Тогда
тестовоеПриложение = Неопределено;
ВызватьИсключение сообщениеОшибки;
КонецЕсли;
массивТестовыхПриложений.Добавить(тестовоеПриложение);
Возврат тестовоеПриложение;
КонецФункции
&НаКлиенте
Функция ПолучитьСтрокуЗапуска(ИмяПользователя = "", Пароль = "", Порт = "")
ЭтоLinux = Ложь;
СисИнфо = Новый СистемнаяИнформация;
ВерсияПриложения = СисИнфо.ВерсияПриложения;
Если Найти(Строка(СисИнфо.ТипПлатформы), "Linux")>0 Тогда
ЭтоLinux = Истина;
КонецЕсли;
СтрокаЗапуска1с = КаталогПрограммы() + "1cv8c";
Если ЭтоLinux = Ложь Тогда
СтрокаЗапуска1с = СтрокаЗапуска1с + ".exe";
КонецЕсли;
Результат = СтрокаЗапуска1с + " ENTERPRISE " +
"/IBConnectionString""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """""") + """" +
" /N""" + ИмяПользователя + """" + ?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """") +
" /TESTCLIENT -TPort" + XMLСтрока(Порт);
Возврат Результат;
КонецФункции