Файл тестов для xUnitFor1C: тестирование проведения документов

Публикация № 1257043

Администрирование - Администрирование данных 1С - Тестирование и исправление

xUnitFor1C тестирование тест проведение

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

Тестировалось на платформе 8.3.15.1830

После очередного обновления нетиповой бухгалтерии захотелось проверить, что в результате обновления не пострадали механизмы проведения документов. А именно: нужно было убедиться в том, что а) документы проводятся в принципе; б) движения (бух.проводки, записи регистров) документов после перепроведения в новой конфигурации остаются такими же, как и в старой.

Для этого был нарисован файл тестов для xUnitFor1C, который отбирает по 10 документов каждого вида за последний год, перепроводит их, и сравнивает движения по всем регистрам до и после перепроведения. Количество отбираемых документов и настройки периода можно изменить в процедуре ЗаполнитьНаборТестов() - см.структуру ПараметрыОтбораДокументов.

Проект на гитхабе: https://github.com/q-i/tests_for_xUnitFor1C

Рацпредложения приветствуются.

Исходный код модуля обработки файла тестов (лицензия Apache 2.0 для совместимости с проектом xUnitFor1C):

Перем КонтекстЯдра;
Перем Утверждения;
Перем УтвержденияПроверкаТаблиц;

//{ основная процедура для юнит-тестирования xUnitFor1C
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
	КонтекстЯдра = КонтекстЯдраПараметр;
	Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
	УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц");
КонецПроцедуры

Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
	КонтекстЯдра = КонтекстЯдраПараметр;
	
	// за последний год
	КонецПериода = ТекущаяДатаСеанса();
	НачалоПериода = ДобавитьМесяц(КонецПериода, -12);
	
	ПараметрыОтбораДокументов = Новый Структура;
	ПараметрыОтбораДокументов.Вставить("НачалоПериода", НачалоПериода);
	ПараметрыОтбораДокументов.Вставить("КонецПериода", КонецПериода);
	ПараметрыОтбораДокументов.Вставить("КоличествоДокументов", 10);
	
	Для Каждого МетаОбъект Из Метаданные.Документы Цикл
		Если МетаОбъект.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить 
			И ПравоДоступа("Проведение", МетаОбъект) Тогда
			ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект, ПараметрыОтбораДокументов);
		КонецЕсли; 
	КонецЦикла; 
	
КонецПроцедуры

Процедура ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект, ПараметрыОтбораДокументов)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Ссылка,
	|	Представление
	|ИЗ
	|	Документ." + МетаОбъект.Имя + "
	|ГДЕ
	|	Проведен	
	|	И Дата МЕЖДУ &НачалоПериода И &КонецПериода
	|
	|УПОРЯДОЧИТЬ ПО
	|	МоментВремени Убыв";
	Запрос.УстановитьПараметр("НачалоПериода", ПараметрыОтбораДокументов.НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", ПараметрыОтбораДокументов.КонецПериода);
	Запрос.Текст = СтрЗаменить(Запрос.Текст, 
								"ВЫБРАТЬ ПЕРВЫЕ 1", 
								"ВЫБРАТЬ ПЕРВЫЕ " + Формат(ПараметрыОтбораДокументов.КоличествоДокументов, "ЧГ=")
								);	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат;	
	КонецЕсли; 
	 
	
	НаборТестов.НачатьГруппу("Документ." + МетаОбъект.Имя);
	
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		ПараметрыТеста = НаборТестов.ПараметрыТеста(Выборка.Ссылка);
		ПредставлениеТеста = Выборка.Представление;
		НаборТестов.Добавить("Тест_ПровестиДокумент", ПараметрыТеста, ПредставлениеТеста);			
	КонецЦикла; 
		
КонецПроцедуры

Функция ПолучитьДвиженияДокумента(ДокументОбъект)
	
	Если 1=2 Тогда
		ДокументОбъект = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();	
	КонецЕсли; 
	
	Результат = Новый Соответствие; 
	
	Для Каждого Движение Из ДокументОбъект.Движения Цикл
		ТипДвижения = ТипЗнч(Движение);
		Движение.Прочитать();
		ТаблицаДвижения = Движение.Выгрузить();
		Результат.Вставить(ТипДвижения, ТаблицаДвижения);
	КонецЦикла; 
	
	Возврат Результат;
	
КонецФункции
//}

//{ Блок юнит-тестов
Процедура ПередЗапускомТеста() Экспорт
	НачатьТранзакцию();
КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт
	Если ТранзакцияАктивна() Тогда
	    ОтменитьТранзакцию();
	КонецЕсли;
КонецПроцедуры

Процедура Тест_ПровестиДокумент(ДокументСсылка) Экспорт
	
	Если 1=2 Тогда
		ДокументСсылка = Документы.СчетНаОплатуПокупателю.ПустаяСсылка();	
	КонецЕсли; 
	
	ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
	
	ДвиженияДо = ПолучитьДвиженияДокумента(ДокументОбъект);
	
	ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
	
	ДвиженияПосле = ПолучитьДвиженияДокумента(ДокументОбъект);
	
	Для Каждого КлючИЗначение Из ДвиженияДо Цикл
		ТипДвижения = КлючИЗначение.Ключ;
		ТаблицаДвиженияДо = КлючИЗначение.Значение;
		ТаблицаДвиженияПосле = ДвиженияПосле.Получить(ТипДвижения);
		УтвержденияПроверкаТаблиц.ПроверитьРавенствоТаблиц(ТаблицаДвиженияДо, ТаблицаДвиженияПосле, "Отличаются движения по регистру " + ТипДвижения);
	КонецЦикла; 
	
КонецПроцедуры

//}

 

Скачать файлы

Наименование Файл Версия Размер
Файл тестов для xUnitFor1C: тестирование проведения документов:

.7z 2,82Kb
28.06.20
32
.7z 2,82Kb 32 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 5919 30.06.20 08:29 Сейчас в теме
Для универсальности стоит добавить список общих реквизитов и просто имен колонок таблиц движений, исключаемых из проверки (например "Дата изменения" записи).
5. q_i 413 30.06.20 13:47 Сейчас в теме
(1) Настройки xUnitFor1C я так и не осилил (руки-ноги не дошли разобраться). Если пришлёте патч, внесу Ваши изменения.
2. artbear 1186 30.06.20 10:56 Сейчас в теме
(0) Как интересно и полезно.
Предлагаю включить эти тесты в виде еще одних дымовых тестов в Ванесса-АДД - наследник xUnitFor1C
что скажешь?
4. q_i 413 30.06.20 13:39 Сейчас в теме
(2) Да, конечно, без проблем. Код открыт, лицензия свободная, идея бесплатная. )))
О! Оказывается я отстал от жизни, уже есть какой-то Ванесса-АДД? Сейчас почитаю, что за зверь!
6. artbear 1186 02.07.20 13:23 Сейчас в теме
(4) ты очень-очень отстал, Ванесса-АДД уже несколько лет )
7. q_i 413 02.07.20 18:07 Сейчас в теме
(6) Почему-то вспомнился именно этот момент из "Разрушителя": https://www.youtube.com/watch?v=4-C8P8RWux4 )))))
Ничего, подтянусь! И с ракушками разберусь, и с Ванесса-АДД! ;)
3. artbear 1186 30.06.20 10:58 Сейчас в теме
(0) на гитхабе на репо я подписан, оказывается. Странно, почему я пропустил эти тесты и не включил в Ванесса-АДД.
8. Xershi 1002 04.07.20 19:14 Сейчас в теме
(3) запилите публикацию для автомейшин или как её по русски писать.
9. artbear 1186 06.07.20 12:20 Сейчас в теме
(8) Зачем? текущие тесты подойдут только для xUnitFor1C и для Ванесса-АДД !
10. Xershi 1002 06.07.20 12:33 Сейчас в теме
(9) мне интересно через предложенное решение делать тесты.
11. artbear 1186 06.07.20 12:37 Сейчас в теме
(10) делай, кто мешает. но универсальные дымовые тесты ты через бдд-часть удобно и просто не сделаешь (
а текущие тесты, как и многие другие дымовые из Ванесса-АДД, универсальны.
12. artbear 1186 06.07.20 12:38 Сейчас в теме
(10) я сам люблю и развиваю БДД-тестирование в Ванесса-АДД, но я знаю и о минусах такого тестирования.
13. aayukhanov_corp 07.07.20 23:43 Сейчас в теме
(0) я добавил ПР в Ванесса-АДД на базе твоих тестов https://github.com/vanessa-opensource/add/pull/768
+ также добавил возможность настройки через json-файлы
14. q_i 413 10.07.20 17:34 Сейчас в теме
15. artbear 1186 10.07.20 17:35 Сейчас в теме
(14)даже успел смержить и добавил возможность настройки
16. q_i 413 10.07.20 18:07 Сейчас в теме
(15) Снимаю шляпу, маэстро! :)
Оставьте свое сообщение

См. также

Поиск и замена дублей + v0.99 Промо

Чистка базы Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Обработка позволяет выполнять гибкий поиск, замену и удаление дублирующихся элементов любого справочника или плана видов характеристик.

03.08.2007    73756    0    tormozit    227    

Нейроконструктор

Интеграция Искусственный интеллект (AI) Прочие инструменты разработчика v8 Бесплатно (free)

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    6365    19    user1404129    18    

Загрузка, редактирование и установка цветовых схем (раскраски кода) в Конфигуратор и EDT

Работа с интерфейсом Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

В современных IDE и текстовых редакторах есть удобная работа с цветовыми схемами: их можно загружать из файлов, выбирать из списка и сразу устанавливать в оболочку. К сожалению, в Конфигураторе и EDT цвета кода можно настроить только вручную. Этой разработкой хочу исправить эту проблему.

14.05.2020    4780    43    CyberCerber    29    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика Консоль запросов v8 1cv8.cf Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    23637    295    cprit    95    

Перезаписать наборы записей с пустой валютой

Тестирование и исправление v8 БП2.0 УПП1 БУ Бесплатно (free)

Обработка для любой конфигурации, в которой есть регистр бухгалтерии хозрасчетный. Перезаписывает наборы записей с валютой<>неопределено на всех невалютных счетах.

21.09.2009    9400    0    77dream77    2    

Поиск задвоенных документов по результатам переносов из других баз.

Тестирование и исправление Анализ учета v8 1cv8.cf Бесплатно (free)

При переносах из разных баз разными программистами создавались документы с разнотипными номерами, в том числе с префиксами. Встала задача навести порядок. )

27.08.2009    8113    0    elizarovs    1    

Редактирование реквизитов в КД

Тестирование и исправление Обмен через XML Перенос данных из 1C8 в 1C8 v8 1cv8.cf КД Бесплатно (free)

Редактирование реквизитов в Конвертации данных 2.0

28.07.2009    13771    0    acsent    16    

Оформление пересортицы в БП

Обработка документов Тестирование и исправление Учет ТМЦ Учет ТМЦ v8 БП2.0 Россия Бесплатно (free)

На основании 2х документов списания и оприходования по зачтенным позициям формирует документ "Операция" вида Д43 К43 (или Д41 К41) на перезачитываемые позиции. Счет берется из регистра сведений счет учета номенклатуры.

16.06.2009    10991    0    y22-k    3    

Оформление и зачет пересортицы на складе в конфигурациях УТ

Обработка документов Тестирование и исправление Учет ТМЦ Учет ТМЦ v8 УТ10 Россия Бесплатно (free)

Два обработки - одна для торговли, одна для Бухгалтерии. В текущей публикации размещена основная обработка для торговли. Вторая обработка для Бухгалтерии находится в http://infostart.ru/public/20444/ Текущая обработка позволяет на основании документа "Инвентаризация товаров и услуг" произвести зачет номенклатурных позиций между собой по одинаковым весам (можно и по штукам, если вес не указан).

16.06.2009    13859    0    y22-k    10    

Тестирование производительности 1С Бухгалтерский учет 8.1

Сервисные утилиты Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Обработка предназначена для тестирования производительности 1С Предприятие 8.1 "Бухгалтерский учет" при различных конфигурациях оборудования и режимах работы. Она создает заданное количество элементов справочников (номенклатура, контрагенты и договора), затем создается заданное количество документов. При установленном флажке "Удалять созданное" все удаляется. Созданное можно удалить и позже. Уникальность объектов обеспечивается префиксом. Необходимость флажка вызвана невозможностью одновременного удаления объектов с нескольких компьютеров. Также можно установить задержку при создании элементов, если мощность оборудования не позволяет вести одновременную запись с нескольких компьютеров (проявляется в файловом варианте работы). При этом конечно результаты не покажут максимальную производительность. Результаты измерений заносятся в файл XML. Примеры вложены в архив. Вариант использования: загружаем конфигурацию, производим измерения, сохраняем файл, снова загружаем конфигурацию и производим измерения при другом режиме работы. Теоретически можно работать в реальной базе, но не рекомендуется. Если обработка приживется - я доделаю веб-интерфейс для загрузки файлов измерений на сайт и отображение статистики. Тогда можно будет посмотреть - кто чем богат и определиться с выбором оборудования для себя.

14.11.2008    17753    0    capitan    12    

Обработка для замены ссылок

Поиск данных Инструментарий разработчика Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Обработка предназначена для замены ссылок. Отличия от аналогов - возможность выполнения заданного пользователем алгоритма для заполнения таблицы замен.

05.11.2008    14238    0    ValeriVP    5    

Проверка регистров сведений перед усечением типов измерений

Сервисные утилиты Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Если при усечении типов измерений регистров сведений нарушается уникальность записей, то конфигуратор не дает применить конфигурацию к БД с ошибкой "Записи регистра сведений ... стали не уникальными!" до 8.2.14 и "Имеются записи с одинаковыми измерениями" начиная с 8.2.14. Данная обработка позволит быстро найти такие записи. Обработка больше не поддерживается в мобильном варианте. Теперь она включена в подсистему "Инструменты разработчика" http://infostart.ru/public/15126/

15.07.2008    43222    0    tormozit    11    

Исправление ошибок (Перепроведение партий + Изменение вида взаиморасчетов в договорах контрагентов + Автозаполнение ПКО)

Обработка документов Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Исправление ошибок (Перепроведение партий + Изменение вида взаиморасчетов в договорах контрагентов + Автозаполнение ПКО)

10.07.2008    7058    0    dvadva    4    

1С 8.1 УТ 10.3: Обработка ежемесячной проверки заполнения серий

Обработка документов Тестирование и исправление Анализ учета Учет ТМЦ Учет ТМЦ v8 УТ10 Бесплатно (free)

Необходимая в УТ операция для корректного ведения учёта с использованием названий стран происхождения товара - заполнение и выверка серий товаров. Обработка предназначена для контроля заполнения серий в документах за период.

30.04.2008    13040    0    angeliccare    8    

Смена контрагента и договора

Тестирование и исправление v8 БП2.0 УТ10 УПП1 Россия Бесплатно (free)

Меняет выбранного контрагента на другого + ставит договор другого контрагента

26.11.2007    8564    0    programmer-1c2007    1    

Поиск и замена дублирующихся элементов справочников

Чистка базы Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Ищет дубли справочников в любых конфигурациях на платформе 8

05.11.2007    16458    0    sikvel2012    16    

Поиск и замена дублей для Планов видов характеристик - 8.0

Чистка базы Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Аналог типовой "ПоискИЗаменаДублирующихсяЭлементов" - для планов видов характеристик.

29.10.2007    7121    0    team    2    

Универсальная обработка по поиску дубликатов в справочниках для 1С 8.0-8.1

Чистка базы Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Универсальная обработка по поиску дубликатов в любых справочниках по любым реквизитам!!! Теперь и для 8 версии 1С. Была сделана в связи с неудобностью стандартной обработки, и отображения "похожих" дубликатов, т.е. не 100%.

14.06.2007    19659    0    denukraine    16    

Поиск документов с отличающимся периодом движений в регистрах

Обработка документов Поиск данных Тестирование и исправление v8 1cv8.cf Бесплатно (free)

Поиск документов с отличающимся периодом движений в регистрах.

30.11.2006    10325    0    IronDemon    6