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