Skip to content

Commit

Permalink
новые шаги копирования файлов
Browse files Browse the repository at this point in the history
1
- Я копирую файл "xxx/file01.txt" в каталог "yyy/zzz"
- Я копирую файл проекта "xxx/file01.txt" в каталог "yyy/zzz"

учитываются различные шаблонные переменные
- РабочийКаталог, КаталогПроекта и любые специальные каталоги
- текущий каталог можно не указывать

2 Каталог проекта получаю точнее
  • Loading branch information
Artur Ayukhanov committed Mar 20, 2024
1 parent a42be3d commit 683652e
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
ВсеШаги.Добавить("ЯСоздаюФайлВнутриКаталога");
ВсеШаги.Добавить("ФайлВнутриКаталогаСуществует");
ВсеШаги.Добавить("ФайлВнутриКаталогаНеСуществует");
ВсеШаги.Добавить("ЯКопируюФайлВКаталог");
ВсеШаги.Добавить("ЯКопируюФайлПроектаВКаталог");
ВсеШаги.Добавить("ЯКопируюФайлИзКаталогаПроектаВРабочийКаталог");
ВсеШаги.Добавить("ЯКопируюФайлИзКаталогаПроектаВПодкаталогРабочегоКаталога");
ВсеШаги.Добавить("ЯКопируюКаталогИзКаталогаПроектаВРабочийКаталог");
Expand Down Expand Up @@ -147,6 +149,49 @@
СоздатьФайлПример(НовыйПуть);
КонецПроцедуры

//Я копирую файл "tests/fixtures/step_definitions/БезПараметров.os" в каталог "РабочийКаталог"
Процедура ЯКопируюФайлВКаталог(Знач ПутьФайла, Знач КаталогКуда) Экспорт
ПутьФайла = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(ПутьФайла);
ПутьФайла = ЗаменитьШаблоныВПараметрахКоманды(ПутьФайла);

КаталогКуда = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(КаталогКуда);
КаталогКуда = ЗаменитьШаблоныВПараметрахКоманды(КаталогКуда);

ФайлСуществует(ПутьФайла);

Лог.Отладка("ПутьФайла %1", ПутьФайла);
Лог.Отладка("КаталогКуда %1", КаталогКуда);

Файл = Новый Файл(ПутьФайла);
ИмяФайлаПриемника = ОбъединитьПути(КаталогКуда, Файл.Имя);
Лог.Отладка("ОбъединитьПути(ТекущийКаталог(), Файл.Имя) %1", ИмяФайлаПриемника);

КопироватьФайл(ПутьФайла, ИмяФайлаПриемника);

ФайлСуществует(ИмяФайлаПриемника);
КонецПроцедуры

Процедура ЯКопируюФайлПроектаВКаталог(Знач ПутьФайла, Знач КаталогКуда) Экспорт
ПутьФайла = ОбъединитьПути(КаталогПроекта(), ПутьФайла);

КаталогКуда = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(КаталогКуда);
КаталогКуда = ЗаменитьШаблоныВПараметрахКоманды(КаталогКуда);

ФайлСуществует(ПутьФайла);

Лог.Отладка("ПутьФайла %1", ПутьФайла);
Лог.Отладка("КаталогПроекта() %1", КаталогПроекта());
Лог.Отладка("КаталогКуда %1", КаталогКуда);

Файл = Новый Файл(ПутьФайла);
ИмяФайлаПриемника = ОбъединитьПути(КаталогКуда, Файл.Имя);
Лог.Отладка("ОбъединитьПути(ТекущийКаталог(), Файл.Имя) %1", ИмяФайлаПриемника);

КопироватьФайл(ПутьФайла, ИмяФайлаПриемника);

ФайлСуществует(ИмяФайлаПриемника);
КонецПроцедуры

//Я копирую файл "fixture.epf" из каталога "tests" проекта в рабочий каталог
Процедура ЯКопируюФайлИзКаталогаПроектаВРабочийКаталог(Знач ПутьФайла, Знач ПодКаталогПроекта) Экспорт
ПутьФайла = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(ПутьФайла);
Expand Down Expand Up @@ -390,7 +435,8 @@

//Я показываю каталог проекта
Процедура ЯПоказываюКаталогПроекта() Экспорт
Сообщить(БДД.ПолучитьИзКонтекста("КаталогПроекта"));
Сообщить("КаталогПроекта() " + КаталогПроекта());
// Лог.Информация("КаталогПроекта() %1", КаталогПроекта());
КонецПроцедуры

//Я показываю рабочий каталог
Expand Down Expand Up @@ -496,6 +542,15 @@
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог");
КонецФункции

Функция КаталогПроекта()
Результат = БДД.ПолучитьИзКонтекста("КаталогПроекта");
Если Не ЗначениеЗаполнено(Результат) Тогда
ЯСохраняюКаталогПроектаВКонтекст();
Результат = БДД.ПолучитьИзКонтекста("КаталогПроекта");
КонецЕсли;
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта");
КонецФункции

Функция ПолучитьСтекТекущихКаталогов()
СтекТекущихКаталогов = БДД.ПолучитьИзКонтекста("СтекТекущихКаталогов");
Если СтекТекущихКаталогов = Неопределено Тогда
Expand Down Expand Up @@ -571,14 +626,24 @@
КаталогПроекта = БДД.КаталогПроверяемогоПроекта();
РабочийКаталог = РабочийКаталог();

Лог.Отладка("ЗаменитьШаблоныВПараметрахКоманды ПараметрыКоманды %1", ПараметрыКоманды);

Рез = СтрЗаменить(ПараметрыКоманды, "<КаталогПроекта>", КаталогПроекта);
Рез = СтрЗаменить(Рез, "<РабочийКаталог>", РабочийКаталог);
Если СтрНачинаетсяС(Рез, "КаталогПроекта") Тогда
Рез = СтрЗаменить(ПараметрыКоманды, "КаталогПроекта", КаталогПроекта);
КонецЕсли;
Если СтрНачинаетсяС(Рез, "РабочийКаталог") Тогда
Рез = СтрЗаменить(ПараметрыКоманды, "РабочийКаталог", РабочийКаталог);
КонецЕсли;

Рез = СтрЗаменить(Рез, "<КаталогПроектаДвойныеСлеши>", ЗаменитьСлешиНаДвойныеСлеши(КаталогПроекта));
Рез = СтрЗаменить(Рез, "<РабочийКаталогДвойныеСлеши>", ЗаменитьСлешиНаДвойныеСлеши(РабочийКаталог));

Рез = СтрЗаменить(Рез, "<КаталогПроектаПрямыеСлеши>", ЗаменитьСлешиНаПрямыеСлеши(КаталогПроекта));
Рез = СтрЗаменить(Рез, "<РабочийКаталогПрямыеСлеши>", ЗаменитьСлешиНаПрямыеСлеши(РабочийКаталог));

Лог.Отладка("ЗаменитьШаблоныВПараметрахКоманды Рез %1", Рез);
Возврат Рез;
КонецФункции

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

# Инициализация рабочего каталога и создание каталогов
Контекст:
# Дано я включаю отладку лога с именем "bdd.tests"
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я устанавливаю временный каталог как рабочий каталог

Expand All @@ -18,6 +17,9 @@
Допустим Я создаю файл "folder0/file01.txt" в рабочем каталоге

Дано Я создаю временный каталог и сохраняю его в переменной "СпециальныйКаталог"
И Я установил подкаталог "folder0" рабочего каталога как текущий каталог
# И Я восстановил предыдущий каталог
# Дано я включаю отладку лога с именем "bdd.tests"

Сценарий: Копирование файлов
Когда Я копирую файл "step_definitions/БезПараметров.os" из каталога "tests/fixtures" проекта в рабочий каталог
Expand All @@ -32,3 +34,40 @@

Тогда В рабочем каталоге существует каталог "step_definitions"
И В подкаталоге "folder0/folder01" рабочего каталога существует каталог "step_definitions"

Сценарий: И Я копирую файл "ПутьФайла" из текущего каталога в подкаталог текущего каталога
Дано файл "../file01.txt" не существует
Когда Я копирую файл "file01.txt" в каталог ".."

Тогда файл "../file01.txt" существует
Тогда файл "РабочийКаталог/file01.txt" существует
Тогда В рабочем каталоге существует файл "file01.txt"

Сценарий: И Я копирую файл "ПутьФайла" из текущего каталога в рабочий каталог через спец.переменную "РабочийКаталог"
Когда Я копирую файл "file01.txt" в каталог "РабочийКаталог"
Тогда В рабочем каталоге существует файл "file01.txt"

Сценарий: И Я копирую файл "ПутьФайла" в рабочий каталог через спец.переменную "РабочийКаталог"
Когда Я копирую файл "РабочийКаталог/folder0/file01.txt" в каталог "РабочийКаталог"
Тогда В рабочем каталоге существует файл "file01.txt"

Сценарий: И Я копирую файл "ПутьФайла" из проекта в рабочий каталог через спец.переменные "КаталогПроекта" и "РабочийКаталог"
Когда Я копирую файл "КаталогПроекта/tests/fixtures/step_definitions/БезПараметров.os" в каталог "РабочийКаталог"
Тогда В рабочем каталоге существует файл "БезПараметров.os"

Сценарий: И Я копирую файл "ПутьФайла" из проекта в рабочий каталог через спец.переменные "КаталогПроекта" и "СпециальныйКаталог"
Когда Я копирую файл "КаталогПроекта/tests/fixtures/step_definitions/БезПараметров.os" в каталог "СпециальныйКаталог"
Тогда файл "СпециальныйКаталог/БезПараметров.os" существует

Сценарий: И Я копирую файл проекта "ПутьФайла" в рабочий каталог через спец.переменные "КаталогПроекта" и "РабочийКаталог"
И я показываю каталог проекта
Когда Я копирую файл проекта "tests/fixtures/step_definitions/БезПараметров.os" в каталог "РабочийКаталог"
Тогда В рабочем каталоге существует файл "БезПараметров.os"

Сценарий: И Я копирую файл проекта "ПутьФайла" в рабочий каталог через спец.переменные "КаталогПроекта" и "СпециальныйКаталог"
Когда Я копирую файл проекта "tests/fixtures/step_definitions/БезПараметров.os" в каталог "СпециальныйКаталог"
Тогда файл "СпециальныйКаталог/БезПараметров.os" существует

# Сценарий: И Я копирую файл "fixtures/ИмяФайла" в подкаталог рабочего каталога через спец.переменную "РабочийКаталог"
# Когда Я копирую файл "tests/fixtures/test-report.xml" в каталог "РабочийКаталог/folder0/folder01"
# И В подкаталоге "folder0/folder01" рабочего каталога существует файл "test-report.xml"

0 comments on commit 683652e

Please sign in to comment.