Предисловие
Не будем вдаваться в тему "использовать" vs "не использовать" автоматическое тестирование в разработке. А посмотрим на тестирование с другой стороны. Часто бывает нужно дорабатывать документы, алгоритмы которых зависят от других уже введенных документов, например, нужно поправить расчет себестоимости. Но чтобы только дойти до расчета себестоимости, требуется ввести десяток разных документов.
А если где-то вначале нужно поменять документ? Приходится все удалять и заново вводить всю цепочку. Вот тут-то нам и поможет наше тестирование. Будем с его помощью создавать демо пример
Цепочка документов
Рассмотрим следующую цепочку:
- Создание заказа на производство
- Поступление материалов
- Перемещение на склад производства
- Передлача материалов в производство
- Выпуск продукции
- Акт выполненных работ
- Расчет себестоимости и формирование проводок
В данной цепочке не рассматривается учет ЗП и прочие расходы. Для того, чтобы все это ввести, нужно выполнить следующие шаги
Конечно же, нам также необходимо иметь возможность удалять всю цепочку для запуска процесса с чистого листа + также необходимо заполнить предварительные настройки, создать элементы справочников
Запуск тестов
Сам запускатель тестов можно скачать с гитхаба https://github.com/xDrivenDevelopment/xUnitFor1C
Там же можно ознакомиться с тем, как писать и запускать тесты.
Данные тесты запускались на типовой конфигурации ERP 2.1.3.100.
Потом запускаем тест 00_ДопОбъекты, затем все остальные тесты
Дополнительные бонусы
Помимо собственно генерации тестового примера, в данных обработках можно посмотреть, как одни документы ERP вводятся на основании других. Тут можно немного похвалить 1С. Практически всегда можно создать и заполнить документы не прибегая к открытию форм, ибо все функции по заполнению находятся в модулях менеджеров или объектов
P.S. Страничка проекта на gitub
https://github.com/acsent80/erp2_xtests
P.P.S. Можете посмотреть другие мои статьи по доработке ERP
Изящная доработка движений и проводок документов ERP 2
Добвлен модифицировнный ранер xUnit.
Отличия от релиза:
1. Строгий порядок тестов
2. Убрано сообщение о невозможности запуска модальных диалогов
(0) Статья какая-то не до конца оформлена. Автор а где что можно предметно посмотреть или скачать ?
Автор, а вы просто забыли/не смогли прикрепить сами тесты? Или не планировали? На текущий момент заголовок статьи не соответствует содержанию
Прикрепил файлы, оказывается для типа «статья» файлы сами удаляются
(3) прогнал тесты. Но при выполнении сценариев на демо базе ерпи 2.1.3.100 падают некоторые тесты. Ошибки связаны с тем, что не находится нужный маршрутный лист. При этом ошибок при расчете себестоимости не возникает.
Также не заполняется и поле Стоимость в акте, но это возможно потому, что нам нужны проводки, а не движения
p.s. В целом, я считаю, подобные тесты по типовым конфигурациям — очень крутая штука, т.к. позволяют обмениваться знаниями по сложным алгоритмам в более простом для восприятия виде.
Сам сейчас решаю задачу по себестоимости, и подобный пример, создающий простую модель с необходимыми данными, очень сильно упрощает жизнь. Тем более, что задача расчета себестоимости не теряет актуальности
(4) Можешь конкретные ошибки написать?
Возможно тест 00_ДопОбъекты был запущен не в самом начале
(6) ошибки прилагаю в файле. Проблема в том, что маршрутный лист вообще не создается. Видимо, это зависит от какой-нибудь константы или какой-нибудь галочки в каком-нибудь справочнике/регистре. Пока еще не успел разобраться
(6) тест прогонял полностью несколько раз. При первом запуске ошибки были почти на всех ветках. На последующих прогонах — только те ошибки, что на скрине
(7) yurii_host, off: с константами есть глобальная проблема. В erp их больше 450 и при этом есть такие которые в себе содержат хранилище значений, а там такой мусор бывает, что попытка автоматизировать их перенос в другую базу — ломает базу (починить можно, но это очень долго).
Понял. не установлен график предприятия
НСИ и Администрирование > Настройки параметров системы > Предприятие > Орнгаизации > График работы предприятия
Нужно также проверить, что он заполнен на 2016 год
(10) благодарю. Ошибки ушли.
Однако таблица значений, которая хранится в тесте 13 по себестоимости при разворачивании через ЗначениеИзСтрокиВнутр() возвращает таблицу с колонками, но без строк. Сам тест сравнивает проводки документа, которых нет, с пустой таблицей значений и выдает ОК. Поле Стоимость в движениях акта по регистру Себестоимость также равно нулю.
Подскажи, плиз, это так и задумано?
На скрине таблица, которая получается из строки внутр
Исправил ошибки в тесте, все-таки сам тест выреазлся из немного большего.
Также в 00_ДопОбъекты добавил заполнение счетов по расходам. тест «Организации»
(12) вот теперь все вообще круто.
Спасибо!
Партии произв. затрат заполнились, и себестоимость тоже заполнена. Для моей задачи этого вполне достаточно
Первые публичные тесты для типовых конфигураций! Поздравляю!
https://github.com/xDrivenDevelopment/precommit1c для обработок-тестов
Не хватает
Великолепно! Жаль не УПП
НСИ и Администрирование > Настройки параметров системы > Предприятие > Орнгаизации > График работы предприятия
это в тесты нельзя включить?
(14) Это в планах, но пока не разобрался еще с данной подсистемой
Добавил заполнение календаря в тест 00_ДопОбъекты
Отлично, ещё можно сделать ролик на youtube для популяризации как пользоваться и плюс про «precommit1c для обработок-тестов»
Отлично!
А проверка движений документов не реализована?
Документ может создаваться и проводится, а вот движения быть не совсем ожидаемыми.
(20) Проверяются только проводки документа Акт в послденем тесте
Добавил разобранные файлы на git
acsent, сделал инструкцию по запуску xUnit на примере Ваших тестов.http://infostart.ru/public/542747/
Для демонстрационной базы ERP тесты выполнились с ошибками.
Скоро присоединюсь к разработке/доработке тестов erp2_xtests.
(23) Эх в версии 4 xUnit убрали строгий порядок выполнения, поэтому полный тест не отрабатывает
(24) т.е. ты заложился на порядок выполнения тестов в строгой последовательности?
внутри одного набора тестов (в одном файле-обработке) или среди нескольких разных обработок?
(25) Среди разных.
Это же сценарий был, а не отдельный тест