Для быстрого входа рекомендую почитать статьи или посмотреть видео или Посмотрите Wiki
xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию. Работает как в Windows, так и в Linux.
Любые наборы тестов могут прогоняться в полностью автоматическом режиме через специальную командную строку запуска. Автозапуск используется в различных build-серверах в системах Continuous Integration.
Также возможно очень простое создание тестовых данных на основании табличных макетов. Эти макеты можно генерировать из реальных боевых данных. Полученные данные в тестах загружаются одной строкой кода.
Почитайте короткую инструкцию по установке фреймворка xUnitFor1C
В случае возникновения каких-то проблем при тестировании рекомендуем заглянуть на страницу Известные проблемы при тестировании
Оглавление:
История тестирования в 1С-среде
Работы по тестированию в 1С начались в сообществе 1С++ для 1С 7.7 еще в далеких 2003-2004 годах.
Я лично пришел в тестирование, когда меня сильно начали напрягать постоянные баги при выпуске новых релизов 1С ++ - одно чиним, другое ломаем. Сначала я начал выполнять работу тестировщика, далее перешел к автоматизации тестировании и непосредственной разработке на С++ для доработки 1С++.
Мной совместно с Федором Езеевым (он не так давно был руководителем отдела тестирования 1С в Яндексе) была создана специальная конфигурация для 1С 7.7 на базе 1С++ для приемочного и юнит-тестирования классов проекта внешней компоненты 1С++. Конфигурация оказалась очень удобной и сильно помогала в разработке 1С++. За год участники проекта 1С++ написали более 1000 интеграционных тестов для классов/модулей 1С++.
В дальнейшем эта конфигурация не раз была использована в боевых системах. И даже пару лет назад мы ее применили для тестирования legacy-конфигурации розничных точек одного из крупнейших ритейлеров России, хотя и прошло более 8 лет с момента разработки в 77. Затем эта же конфигурации и полученные тесты были использованы для нагрузочного тестирования конфигурации.
Параллельно шла разработка проекта функционального/приемочного тестирования FuncTest (автор Федор Езеев). Основная схема работы - сравнение с образцом/ожиданиями. Мы совместно с Федором серьезно поработали над проектом для доведения до мощного юзабельного поведения.
Но время семерки уходило, приходила восьмерка. Нужно было реализовывать продукты тестирования и для восьмерки.
Я портировал проект FuncTest на 8.1 и 8.2. Так появилась Система тестирования функциональных тестов FuncTest для 1cv8.1 - версия 1.17
А Федор на форуме 1С++ параллельно инициировал работу над проектом модульного/юнит-тестирования, аналог xUnit от Кента Бека для 1С. Совместно мы создали специальную подсистему/конфигурацию для 1С 8.1 - тесты писались во внешних обработках. Этот проект - фактически "папа" нашего продукта. Все было очень удобно, но необходимость использования специальной конфигурации мешало в распространении проекта.
И вот в 2012 году, после первой конференции Инфостарт и моего выступления по методикам разработки/тестирования (если я не путаю), Александр Кунташов неожиданно, без объявление войны взял и доработал продукт до универсального состояния, перенеся весь функционал во внешнюю обработку. Продукт стало возможным использовать в любых конфигурациях 1С, в т.ч. и на полной поддержке.
Так фактически и началась работа над продуктом xUnitFor1C.
Далее в проекте очень важные и активные роли сыграли Алексей Лустин и Евгений Сосна.
Сейчас это полноценный боевой продукт, использующийся в более 30 командах (информация от 2014 года) по России, Украине, Белоруссии.
За 3 года существования открытого проекта xUnitFor1C в него вносили правки аж 18 разработчиков
Сейчас на билд-сервере прогоняется более 4500 тестов проекта в различном окружении, как Windows, так и в Linux.
Статьи
- Механизмы разработки/тестирования в 1С. Использование методики TDD (разработка через тестирование) в 1С
- - 10 минут на прочтение.
- * автор Артур Аюханов aka artbear
- Написание простой обработки через TDD (тестирование) в xUnitFor1C
- - 5 минут на прочтение
- Создание файлов тестов в xUnitFor1C (из Вики)
- - 3 минуты на прочтение
- * Пример теста СКД и отчета, сделанного на компоновке (из Вики)
- - 3 минуты на прочтение
- Эволюция автоматического тестирования в среде 1С: Предприятия
- - 6 минут на прочтение
- * автор Евгений Павлюк aka wizi4d
- * Юнит-тесты, BDD и сила текучих утверждений (fluent assertions) в 1С
- - 5 минут на прочтение
- * автор Евгений Павлюк aka wizi4d
Видео
- Механизмы разработки/тестирования в 1С. Использование методики TDD (разработка через тестирование) в 1С
- * Выступление на конференции Infostart Event 2012
- * Автор Артур Аюханов aka artbear
- - 30 минут
- Разработка на 1С по промышленным стандартам (#ALM #SDLC #TFS)
- * Выступление на конференции Infostart Revolution 2013
- * Автор Артур Аюханов aka artbear
- - 28 минут
- Разработка на 1С по промышленным стандартам (как это было)
- * Прямая ссылка на YouTube
- - 8 часов просмотра :)
- - Авторы Алексей Лустин aka allustin и Евгений Павлюк aka wizi4d
Использование xUnitFor1C
- Создание файлов-тестов
- Принципы написания тестов
- Методы проверки/утверждений
- Известные проблемы при тестировании
- Тестирование через образец исходных данных
- Связанные наборы тестов тестовые сценарии в виде связанных шагов сценария
Запуск тестов из командной строки и получение файлов результатов
- Режимы генерации данных при создании объектов и поиске реквизитов объектов
- Генерация макета на базе реальных данных
- Создание макета данных на основании результатов запросов (например, через ирПортативные
Примеры тестов:
Скрипт для Snegopat "Добавить описание тестовых случаев текущего модуля в метод ПолучитьСписокТестов" (xUnitAddTestsDesc.js)"
Инструкция для контрибьюторов, т.е. для тех, кто жаждет доработать xUnitFor1C
Что к чему
- xddTestRunner.epf - браузер и исполнитель тестов для обычного приложения и управляемого приложения 1С:Предприятия 8 (толстый и тонкий клиенты)
- xddDataFixtureGen.epf - генерация макета данных для использования в тестах. Макет можно генерить из боевой базы на основе реальных данных.
- Tests - каталог с примерами тестов и с тестами для самотестирования xddTestRunner.epf (подпапка selftests)
- Tests\CommonApp\тесты_ОткрытиеФормКонфигурации.epf - тесты открытия всех форм справочников, документов, отчетов и обработок. Для справочников и документов в транзакции создаются новые или копируются или перезаписываются существующие элементы.
- Tests\CommonApp\Тест_ЗапускТестовВСеансеДругихПользователей.epf - примеры запуска тестов для пользователей с ограниченными правами. Пользователи создаются на лету из простых макетов.
- Tests\CommonApp\Тест_ПроверитьОтчетНаСоответствиеЭталону.epf - пример теста отчета путем сравнения с эталонным ожиданием из макета.
Как помочь проекту
Мы рады любой помощи:
1. Если вы занимаетесь разработкой на 1С:Преприятии 8 пробуйте писать и выполнять тесты при помощи xUnitFor1C, сообщайте нам об обнаруженных ошибках, пишите пожелания. Для управления сообщениями об ошибках и пожеланиями мы используем баг-трекер GitHub'а.
2. Если у вас есть время разобраться в исходном коде, вы можете взять на себя реализацию одной из открытых задач.
3. Если вы уже используете xUnitFor1C на практике, напишите об этом статью, например, на Инфостарте.
Инструкция для контрибьюторов, т.е. для тех, кто жаждет доработать xUnitFor1C