А правильный вариант мой https://gitter.im/xDrivenDevelopment/xUnitFor1C?at=5aba3416e4ff28713a7b8a33
Artur Ayukhanov @artbear 15:07
@1cgh @pallid В версии 4.Х все просто, оказывается :)
Для получения реального пути к файлу обработки теста
1 достаточно в файле теста определить свойство ПутьКФайлуПолный
например,
- как реквизит в Упр.Форме (для запуска в управляемом приложении) или обычной форме (для запуска в обычном приложении)
- или как экспортная переменная в модуле упр.формы (для запуска в управляемом приложении) или модуле объекта (для запуска в обычном приложении)
- или как реквизит в Упр.Форме (для запуска в управляемом приложении) или реквизит обработки (для запуска в обычном приложении)
2 в своем тесте обратиться к этому реквизиту/переменной
Фреймворк в это свойство загрузит правильный полный клиентский путь!
Старый вариант:
https://gitter.im/xDrivenDevelopment/xUnitFor1C?at=5a907031e4ff28713aba8f5b
Pallid @pallid февр. 23 22:49 Здравствуйте. Подскажите как можно определить путь до обработки выполняемого теста? Тест проверяет работу внешней обработки, и хочется указывать путь для создания объекта тестируемой обработки относительно пути обработки теста.
Alexander Kuntashov @kuntashov февр. 28 22:57 @pallid старое доброе ЭтотОбъект.ИспользуемоеИмяФайла не работает или я не понял вопрос?
Pallid @pallid март 01 10:02 @kuntashov не работает. Ну то есть нормально работает только для xddTestRunner.epf, для самих обработок теста ЭтотОбъект.ИспользуемоеИмяФайла возвращает временный путь
Pallid @pallid март 01 10:22 В общем пока вот так решил проблему
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Если КонтекстЯдра.ТекущийКонтейнер.Свойство("Имя") и КонтекстЯдра.ТекущийКонтейнер.Имя = "Тесты_ПроверкаВнешнейОбработки" Тогда
Массив = КонтекстЯдра.ТекущийКонтейнер.Строки;
Структура = Массив[0];
Если Структура.Свойство("Путь") Тогда
ИмяФайлаВнешнейОбработкиТекущегоТеста = Структура.Путь;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ИмяФайлаВнешнейОбработкиТекущегоТеста) Тогда
Файл = Новый Файл(ИмяФайлаВнешнейОбработкиТекущегоТеста);
ИмяФайлаВнешнейОбработки = Файл.Путь + "ВнешняяОбработка.epf";
КонецЕсли;
ОбработкаОбъект = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработки);
....
КонецПроцедуры
Alexander Kuntashov @kuntashov март 01 11:35 @pallid 👍
Pallid @pallid март 01 12:01 @kuntashov я просто думал может кто знает как это сделать не через такой способ, а более очевидный. Т.е как выполняются тесты на gitlab ci, когда надо протестировать внешнюю обработку
Evhen Sosna @pumbaEO март 01 12:02 в ванессе я специально добвлял макрос workspaceRoot что-бы можно было указать путь к проекту и на основании этого пути резолвить всякие имена
Andrey @KrapivinAndrey март 01 12:22 А разве в коде его можно использовать? Я использую какую-то магическую функцию со времен первого курса по ванессе. Чтобы открывать обработку из корня проекта Причем для УФ и ОФ она разная. ОФ получает путь относительно обработки vanessa-behavior. а УФ путь относительно обработки шага...
Evhen Sosna @pumbaEO март 01 12:45 То просто в ОФ я не добавлял нормального поведения.
Andrey @KrapivinAndrey март 01 14:11 вечером покурю как пользовать