Области применения
-
Площадка для тестирования соискателей - если в вашем процессе найма персонала предусмотрена процедура тестирования
-
Тренажер для разработчиков - каждый может потренироваться в решении алгоритмических задач на встроенном языке 1С: Предприятие
-
Челленджи - для реализации соревнований внутри команды разработки или комьюнити (по аналогии с 1С: Битва)
Логика работы
-
Администратор настраивает набор задач, количество баллов за решение и набор проверящих (unit) тестов
-
Участник тестирования выбирает задачу(и) из списка, знакомится с ее постановкой, реализует решение на встроенное языке 1С: Предприятие, запускает проверку (unit) тестов. Если тест пройден успешно, участник тестирования может опубликовать решение. При публикации решения в регистре фиксируется количество баллов и предоставленный код
-
Администратор имеет право увеличить/уменьшить количество баллов за конкретные решения/предоставленный код (например при CodeReview) с помощью инструмента отчет Результаты тестирования
Требования к программному обеспечению
-
OneScript для работы движка проверки
-
PowerShell
-
Платформа 1С: Предприятие 8.3.16 и старше (для корректной работы буфера обмена)
Благодарности
- OneScript
- Универсальные инструменты
- Hexlet codebattle
- Юрий Пермитин и его статья на Infostart Вы запускаете приложения, но делаете это без уважения
Поддержать автора
Лучший способ поддержать автора - рассказать в чате канала Простая логика о том, как вы применили инструмент, и подписаться на наш YouTube-канал Команда ИТК
Развитие
Разработка: 1С: EDT
Руководство контрибьютора: в разработке
Бэклог задач: Issues в Github
Информация о конфигурации
Ролевая модель
Роль | Права | Режим основного окна |
---|---|---|
Полные права |
Добавление задач и тестов, формирование отчета о результатах тестирования | Обычный |
Участник тестирования |
Тестирование | Рабочее место |
Структура задачи
Элемент | Назначение |
---|---|
Наименование |
Представление задачи в списке |
Актуальность |
Признак актуальность задачи. Неактульные задачи не отображаются в списке |
Постановка задачи |
Постановка задачи в формате HTML |
Шаблон кода |
Шаблон кода, который заполнится в окне редактора кода у участника тестирования при выборе задачи |
Набор тестов |
Таблица тестов См. структура теста |
Структура теста
Элемент | Назначение |
---|---|
Предустановка |
Инициализация входящих параметров функции |
Тест |
Исходный код теста. Тест будет выполнен если значение этого кода будет Истина |
Представление |
Визуальное отображение теста в протоколе тестирования |
Алгоритм работы проверки задачи
- Входная точка в алгоритм -
Справочники.ИТК_Задачи.ПолучитьРезультатыТестирования()
- Функция осуществляет подготовку протокола тестирования по набору тестов для задачи
- Тест считается успешным если, все тесты из набора выполнены
Истина
- Если хоть один тест завершился не успешно, процедура проверки завершается
Алгоритм проверки теста
- Подготовка скрипта OneScript по шаблону
%КОД_УЧАСТНИКА_ТЕСТИРОВАНИЯ%
Попытка
%ПРЕДУСТАНОВКИ_ПАРАМЕТРОВ_ТЕСТА%
%КОД_ТЕСТА%
Исключение
Результат = ОписаниеОшибки();
КонецПопытки;
Сообщить(Результат);
- Выполнение скрипта OneScript с помощью PowerShell
- Анализ результата выполнения
Как это работает