/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.0.3-alpha
tests/console.os
92 строки
4 KB
EvilBeaver
Исправлены строки запуска в тестах
22 авг 2021, 16:14
22 авг 2021, 16:14
c3e8fa1
Код
Авторство
О чём код?
Перем юТест; Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСтандартныйПотокВводаЭтоПоток"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПередачуДанныхВСкриптЧерезСтандартныйПотокВвода"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПеренаправлениеВывода"); Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_ПроверитьЧтоСтандартныйПотокВводаЭтоПоток() Экспорт ПотокВвода = Консоль.ОткрытьСтандартныйПотокВвода(); юТест.ПроверитьРавенство(Тип("Поток"), ТипЗнч(ПотокВвода), "Стандартный поток ввода - Поток"); КонецПроцедуры Процедура ТестДолжен_ПроверитьПередачуДанныхВСкриптЧерезСтандартныйПотокВвода() Экспорт СистемнаяИнформация = Новый СистемнаяИнформация; ПутьКОскрипт = "dotnet " + ОбъединитьПути(КаталогПрограммы(), "oscript.dll"); КодСкрипта = "Чтение = Новый ЧтениеТекста(); |Чтение.Открыть(Консоль.ОткрытьСтандартныйПотокВвода()); |Сообщить(СокрЛП(Чтение.Прочитать())); |"; ТекстСкрипта = Новый ТекстовыйДокумент(); ТекстСкрипта.УстановитьТекст(КодСкрипта); ВремФайл = ПолучитьИмяВременногоФайла("os"); ТекстСкрипта.Записать(ВремФайл); ТестовыеДанные = "12346"; ИсполняемаяКоманда = СтрШаблон("echo %1 | %2 %3", ТестовыеДанные, ПутьКОскрипт, ВремФайл); #Если Windows Тогда ШаблонЗапуска = "cmd /c ""%1"""; #Иначе ШаблонЗапуска = "sh -c '%1'"; #КонецЕсли ИсполняемаяКоманда = СтрШаблон(ШаблонЗапуска, ИсполняемаяКоманда); Процесс = СоздатьПроцесс(ИсполняемаяКоманда, , Истина); Процесс.Запустить(); Пока НЕ Процесс.Завершен Цикл Приостановить(100); КонецЦикла; ВыводКоманды = СокрЛП(Процесс.ПотокВывода.Прочитать()); УдалитьФайлы(ВремФайл); юТест.ПроверитьРавенство(ВыводКоманды, ТестовыеДанные, "Вывод команды - тестовые данные"); КонецПроцедуры Процедура ТестДолжен_ПроверитьПеренаправлениеВывода() Экспорт ВФ = ПолучитьИмяВременногоФайла(); Поток = ФайловыеПотоки.ОткрытьДляЗаписи(ВФ); Консоль.УстановитьПотокВывода(Поток); Попытка Сообщить("Привет мир!"); Исключение // что-то пошло не так Консоль.УстановитьПотокВывода(Консоль.ОткрытьСтандартныйПотокВывода()); ВызватьИсключение; КонецПопытки; Поток.Закрыть(); Консоль.УстановитьПотокВывода(Консоль.ОткрытьСтандартныйПотокВывода()); Чтение = Новый ЧтениеТекста(ВФ, Консоль.КодировкаВыходногоПотока); Текст = Чтение.Прочитать(); Чтение.Закрыть(); УдалитьФайлы(ВФ); юТест.ПроверитьРавенство("Привет мир!", СокрЛП(Текст)); КонецПроцедуры