Система тестирования функциональных тестов FuncTest_Для_1cv8.1 - версия 1.17

Опубликовал artbear в раздел Программирование - Инструментарий

 Система тестирования функциональных тестов FuncTest_Для 1C v81 - версия 1.17

Основана на системе FuncTest для 1С 7.7 - http://1c.alterplast.ru/functest/functest.html

Возможности
Реализована только для 8.1

На данный момент умеет получать/сохранять различные данные, например, все или любые движения конкретного документа/справочника + работать с произвольными запросами и любыми параметрами + работа с печатными формами + работа с произвольными обработками + возможность использования юнит-тестов.
Можно тестировать как один тест из списка, так и все тесты из списка или каталога.

В дальнейшем можно сравнивать текущие ожидания из справочника/документа/запроса/печ.формы/т.д. с сохраненными ожиданиями из теста.

Есть возможность написания самостоятельных классов - произвольных расчетчиков ожиданий.

Интерфейс подобных классов описан в обработке-заготовке Классы/РасчетчикОжиданий_Базовый.epf

Также примера написания можно посмотреть в вложенной папке Классы

История изменений

1.10 - добавлена автогенерация тестов с ожиданиями для документов и автоматическое обновление ожиданий для всех тестов

1.11 - выполнен сильный рефакторинг системы

1.12 - логика тестов отделена от интерфейса, рефакторинг системы

1.13 - выделены классы тестирования и расчетчиков ожиданий, рефакторинг системы

Появилась возможность написания самостоятельных классов - произвольных расчетчиков ожиданий

1.14:
Появилась возможность получать ожидания из запросов 1С.

К базовому интерфейсу классов-расчетчиков ожиданий добавлен метод "ОбработатьНачалоВыбораОбъектаТестирования"

Исправлен баг - нельзя было сделать произвольный класс-расчетчик с произвольным объектом тестирования.
Поведение браузера тестов сделано более "вменяемым".

1.15:
Переделана структура хранения данных тестов - тест хранится в одном файле test_NNN.txt.
Работа с ожиданиями из запросов 1С сделана более стабильной.

Сильно ускорена и оптимизирована работа системы тестирования.
Исправлен различные баги в работе браузера тестов.

Приложены простые демо-тесты с простыми запросами - папка "НезависимыеТесты".

Для нормальной работы с запросами рекомендуется использовать
подсистему "Инструменты разработчика"
http://infostart.ru/projects/1274/
В этом случае появляются максимально удобные возможности
редактирования запросов и их параметров.
Если в конфигурацию включена данная подсистема, то система
тестирования автоматически начинает использовать консоль запросов из этой подсистемы.

1.16:
 [+] имена используемых классов-расчетчиков ожидания хранятся в файле Классы\main.ini (кодировка Win1251)

 [+] изменен/доработан интерфейс классов-расчетчиков ожиданий;

 [+] для класса-расчетчика ожидания добавлена возможность программного управления работой с таблицей "
  Условия теста" - начало выбора, обработка выбора;
 [+] для класса-расчетчика ожидания добавлена возможность программного управления элементом управления
   элементом управления значения условия тестирования;
 [+] добавлена возможность вывода сообщений из теста в общий лог тестирования;

 [+] добавлена спец.условие тестирования "Тест_ФлагНеУчитыватьРазноеКоличествоСтрок";

 [+] доработана работа пользователя со списком тестов;
 [-] если в выбранном пользователе каталоге нет тестов, не все таблицы на экране очищались;
 [*] перед открытием браузера тестов выполняются проверки на существование необходимых классов;

 [-] в условиях тестирования нельзя было использовать значения с типом Булево;

 [+] исправлены наименования колонок списка тестов;

 [*] Расчетчик-ожиданий Запрос - более точная обработка ошибок в тексте запроса;

    Исправлены различные баги в работе браузера тестов.

    [*] - возможно программное тестирование всех тестов,  получение  ожиданий  для  всех
    тестов и распечатка данных тестов из внешнего кода.

 [+] Добавлен новый вид тестирования -
  получение всех движений документа на базе типового отчета ДвиженияДокумента, встроенного в конфигурацию

  файл - РасчетчикОжиданий_ВсеДвиженияДокумента.epf

 [+] Добавлен новый вид тестирования -
  получение печатных форм различных объектов в типовых конфигурациях 1С и подобных им
  Внимание: необходима доработка конфигурации, подробнее в начальных комментариях к тексту модуля

  файл - РасчетчикОжиданий_Печать.epf

 [+] Добавлен новый вид тестирования -
  получение печатных форм из файлов-обработок *.epf аналогично типовым конфигурациям 1С и подобных им
  Используется метод обработки "Печать"

  файл - РасчетчикОжиданий_ВнешняяПечатнаяФорма.epf

 [+] Добавлен новый вид тестирования -
  получение печатных форм из файлов-обработок, хранящихся в справочнике печатных форм, в типовых конфигурациях 1С и подобных им;
  Используется метод обработки "Печать"

  файл - РасчетчикОжиданий_ВнешняяПечатнаяФормаИзСправочникаПечатныхФорм.epf

 [+] Добавлен новый вид тестирования -
  Получение ожиданий на базе произвольных файлов обработок *.epf
  Может использоваться для работы с юнит-тестами - см. папку ПроизвольныеЮнитТесты

  файл - РасчетчикОжиданий_ПроизвольныйТестИзФайлаОбработки.epf

 [+] Добавлена возможность работы с юнит-тестами -
  при использовании расчетчика РасчетчикОжиданий_ПроизвольныйТестИзФайлаОбработки.epf
  необходимо использовать на базе данного файла создать свой вариант юнит-теста

 [+] Рабочий пример юнит-теста -
  для системы 1С:УПП получает данные из книги покупок и
  дает возможность автоматически, на лету сформировать документ "Формирование книги покупок",
  и проверить сохраненную книгу покупок с автоматически сформированной

1.17:
  [-] при прохождении тестирования могло выдаваться исключение из-за ошибки в коде класса Тест и работа тестирования останавливалась.
  [-] при получении ожиданий из печатной таблицы не учитывалась последняя строка таблицы
  [+] новый метод класса Тест::ЗаполнитьРеквизитыПриемникаУсловиямиТеста(Приемник)


Дополнительные возможности

По кнопке Печать можно распечатать список тестов и т.д.

Исходная обработка - http://itland.ru/forum//index.php?showtopic=11542&view=findpost&p=71126
Автор SA_KGB - ему большое спасибо !!

Полезные ссылки по тестированию я выложил в форуме другой своей разработки

Файлы

Наименование Файл Дата Размер Кол. Скачив.
Версия 1.17
.zip 160,17Kb
20.11.09
182
.zip 20.11.09 160,17Kb 182 Скачать
Тестирование_в_v8_FuncTest_v113.rar
.1201677240 35,79Kb
15.11.09
70
.1201677240 15.11.09 35,79Kb 70 Скачать
Тестирование_в_v8_FuncTest_v115.rar
.1228284675 368,92Kb
15.11.09
89
.1228284675 15.11.09 368,92Kb 89 Скачать

См. также

Комментарии

1. artbear 30.01.2008 10:24
В восьмерке работаю не так давно, но настолько привык к тестированию при работе с 7.7 и 1С++, что не могу без тестов :)
Пока реализованы только функциональные тесты.
.
До юнит-тестирования еще не дошел :)
.
Жду новых соавторов :)
которые помогут развить проект.
# Ответить
2. artbear 30.01.2008 10:26
Первая моя "большая" разработка для восьмерки, так что, наверняка, не все фичи восьмерки использованы :)
# Ответить
3. Lustin 30.01.2008 10:34
Артур поясни пожалуйста
>>Появилась возможность написания самостоятельных классов
Ответили: (4)
# Ответить
4. artbear 30.01.2008 10:39
(3)
1. Делаешь копию файла-шаблона Классы/РасчетчикОжиданий_Базовый.epf, переименовываешь.
2. Реализовываешь указанные в классе виртуальные функции как нужно.
2. Новое имя прописываешь в методе ЗадатьИменаНеобходимыхКлассов() в браузере тестов Тестирование_в_v8_FuncTest.epf
п.3 - временное решение, в дальнейшем список подклассов сделаю как текстовый файл с именами классов (типа дефцлс.прм в 1С++ )
# Ответить
5. artbear 30.01.2008 10:41
(4+) Пример реальных, не абстрактных, самостоятельных классов -
Классы/РасчетчикОжиданий_ДвиженияДокумента.epf
Классы/РасчетчикОжиданий_ДвиженияСправочника.epf
# Ответить
6. Kandellaster 30.01.2008 11:23
что то в у меня не хочет конвертироваться )) какой релиз платформы желателен?
Ответили: (7)
# Ответить
7. artbear 30.01.2008 12:20
(6) В описании написано, что 8.1
Я работал на
1С:Предприятие 8.1 (8.1.8.76)
# Ответить
8. anatoly1234 26.05.2008 15:43
Ты перед тем как выкладвыть сам проверяешь вообще или нет? Че народ путаешь. Ставлю минус
Ответили: (9)
# Ответить
9. artbear 26.05.2008 15:45
(8) А что проверять-то? Вроде все работало :)
Опиши подробнее проблему.
# Ответить
10. anatoly1234 26.05.2008 16:29
Проблема в тебе!
# Ответить
11. jeezic 11.11.2008 08:50
а, можно хотя бы кратенько "как с этим работать". А то кроме получения сообщений об ошибках в коде ничего не получается.
Ответили: (19)
# Ответить
12. artbear 03.12.2008 09:12
Обновился.
====================
1.14:
Появилась возможность получать ожидания из запросов 1С.

К базовому интерфейсу классов-расчетчиков ожиданий добавлен метод "ОбработатьНачалоВыбораОбъектаТестирования"

Исправлен баг - нельзя было сделать произвольный класс-расчетчик с произвольным объектом тестирования.
Поведение браузера тестов сделано более "вменяемым".

====================
1.15:
Переделана структура хранения данных тестов - тест хранится в одном файле test_NNN.txt.
Работа с ожиданиями из запросов 1С сделана более стабильной.

Сильно ускорена и оптимизирована работа системы тестирования.
Исправлен различные баги в работе браузера тестов.

Приложены простые демо-тесты с простыми запросами - папка "НезависимыеТесты".

====================
Для нормальной работы с запросами рекомендуется использовать
подсистему "Инструменты разработчика"
http://infostart.ru/projects/1274/
В этом случае появляются максимально удобные возможности
редактирования запросов и их параметров.
Если в конфигурацию включена данная подсистема, то система
тестирования автоматически начинает использовать консоль запросов из этой подсистемы.
# Ответить
13. artbear 16.01.2009 15:38
Текущая версия сильно устарела, я с тех пор ее сильно нарастил.
Все никак не соберусь выложить обновленную версию.
Например, я добавил кучу расчетчиков ожиданий

РасчетчикОжиданий_ПроизвольныйТестИзФайлаОбработки.epf
РасчетчикОжиданий_ВсеДвиженияДокумента.epf
РасчетчикОжиданий_Печать.epf
РасчетчикОжиданий_ВнешняяПечатнаяФормаИзСправочникаПечатныхФ­орм.epf
РасчетчикОжиданий_ВнешняяПечатнаяФорма.epf
РасчетчикОжиданий_Запрос.epf
РасчетчикОжиданий_ДвиженияСправочника.epf
РасчетчикОжиданий_ДвиженияДокумента.epf

ПроизвольныйЮнитТест_БазовыйШаблон.epf
ПроизвольныйЮнитТест_УПП_КнигаПокупок.epf
# Ответить
14. artbear 19.01.2009 08:29
Обновление системы на версию 1.16
Все изменения показаны в основном описании.

Также добавил скриншот для полноты картины
# Ответить
15. barret 03.03.2009 15:36
Окно вылезло с ошиПкой:
"{ВнешняяОбработка.FuncTest_Для_1Сv81(106)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.ХранилищеТестов(11,9)}: Процедура или функция с указанным именем уже определена (ПолучитьИмяКаталога)
Возврат ВнешниеОбработки.Создать(ФайлКласса.ПолноеИмя);
по причине:
{ВнешняяОбработка.ХранилищеТестов(11,9)}: Процедура или функция с указанным именем уже определена (ПолучитьИмяКаталога)"

Конфиг: Бухгалтерия 1.5.22.3
Платформа: 8.1.13
Тип Базы: Файловый
Ответили: (16)
# Ответить
16. artbear 06.03.2009 09:40
(15) Поправлю.
# Ответить
17. vhl2 25.05.2009 18:15
Неужели нельзя сделать обработку не зависящую от конфы? Вот в бухии 1.6 - уже не работает - "ВнешняяОбработка.РасчетчикОжиданий_Печать(45,2)}: Переменная не определена (глОбщиеЗначения)
Не существует класс РАСЧЕТЧИКОЖИДАНИЙ_ПЕЧАТЬ или его не удалось создать
"
Ответили: (18)
# Ответить
18. artbear 26.05.2009 12:40
(17) Данный расчетчик (расчетчик ожиданий для типовых печатных форм) был сделана для предыдущих версий, на новых пока не проверялся.
Исправлю в будущем.
Спасибо за ошибку.
# Ответить
19. koalw 04.08.2009 19:49
(11)
Добрый день. Для меня так и осталось загадкой как использовать все это?
Может возможно создать минифак с минипримером для самых чайников?:) А то .. "висит груша низя кушать"

Спасибо.
Ответили: (20)
# Ответить
20. artbear 05.08.2009 08:08
(19) Почитай описание для системы FuncTest для 1С 7.7 - http://1c.alterplast.ru/functest/functest.html
и далее в содержание посмотри пример.

Причины и примеры использования практически аналогичны :)
# Ответить
22. artbear 19.11.2009 09:32
(21) C чего ты взял подобное про ошибки на самописных ?
ошибки могут выдавать только расчетчики, рассчитанные на типовые конфы, например, РасчетчикОжиданий_ВнешняяПечатнаяФормаИзСправочникаПечатныхФ­орм
Ответили: (23)
# Ответить
23. Anything 19.11.2009 13:10
(22) Скачал "Тестирование_в_v8_FuncTest_v116.rar".
Распаковал в отдельную папку.

Запускаю обработку Тестирование_в_v8_FuncTest.epf.

Вываливаются сообщения:
{ВнешняяОбработка.FuncTest_Для_1Сv81(116)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.РасчетчикОжиданий_Печать(45,2)}: Переменная не определена (глОбщиеЗначения)
Не существует класс РАСЧЕТЧИКОЖИДАНИЙ_ПЕЧАТЬ или его не удалось создать
В базе данных не найден типовой справочник ВнешниеОбработки, работа класса-расчетчика невозможна!
ВНИМАНИЕ: в конфигурации не найден встроенный, типовой отчет "Движения документа". Работа данного расчетчика невозможна.


Особенно не понравилось первое сообщение. Конечно у меня нет переменной глОбщиеЗначения. И тем более не понятно, как это повлияет на работоспособность обработки.
Ответили: (25)
# Ответить
24. Anything 19.11.2009 13:20
Идём дальше.

Создаю тест типа "Запрос".
Ввожу простой запрос: выбрать элементы справочника.
Заполняю ожидание.

Нажимаю "Тестировать", вываливается ошибка:
{ВнешняяОбработка.Тест(514)}: Преобразование значения к типу Булево не может быть выполнено
Если НЕ лФлагНеУчитыватьРазноеКоличествоСтрок И ТаблицаОжиданий.Количество()<>ТаблицаРезультатов.Количество() Тогда
Ответили: (25)
# Ответить
25. artbear 19.11.2009 15:51
(24) Что-то не подтверждается :(
Только что взял левую базу, на которой вроде бы никогда Фанктест не запускал, открыл обработку тестирования.
добавил новый новый тест типа Запрос - выбрал элементы справочника, заполнил ожидание, далее нажал тестировать.
Все в порядке, появилась зеленая полоса, т.е. все штатно.

(23) Понимаешь, есть обработка-оболочка для тестирования и есть плагины-расчетчики ожиданий для тестов.
Вот их ошибки и выдаются.
Эти сообщения говорят, что при инициализации данных расчетчиков есть ошибки (например, они не для данной конфы) и они не будут подключаться к тестирования, т.е. соответствующие тесты невозможно будет проверить.
Остальные расчетчики остаются работоспособными (тот же Запрос, например).
Ответили: (26)
# Ответить
26. Anything 19.11.2009 18:33
(25)
Что-то не подтверждается


Переменная лФлагНеУчитыватьРазноеКоличествоСтрок при определенных условиях может принимать значение Неопределено.

Не нашел в интерфейсе способа установить этот параметр.
Ответили: (28) (27)
# Ответить
27. artbear 20.11.2009 10:29
(26) Интерфейс не очень удобный, т.к. почти прямой наследник от 77.
Данный параметр можно задать в условии теста (правая таблица), добавляешь новый параметр, даешь ему имя "Тест_ФлагНеУчитыватьРазноеКоличествоСтрок", тип Булево, и задаешь нужное значение.
# Ответить
28. artbear 20.11.2009 10:32
(26) Цитата: "Переменная лФлагНеУчитыватьРазноеКоличествоСтрок при определенных условиях может принимать значение Неопределено."
с чего ты так решил?

Код в строке 514 класса Тест (файл Классы/Тест.epf)
лФлагНеУчитыватьРазноеКоличествоСтрок = лОписаниеТипаБулево.ПривестиЗначение( ПолучитьУсловие("Тест_ФлагНеУчитыватьРазноеКоличествоСтрок") );

Насколько я знаю, тут не может получаться ничего, кроме Булево.
Ответили: (29)
# Ответить
29. Anything 20.11.2009 10:47
(28) У меня почему-то по-другому...

Строка 512 (файл Классы/Тест.epf) :
лФлагНеУчитыватьРазноеКоличествоСтрок = ПолучитьУсловие("Тест_ФлагНеУчитыватьРазноеКоличествоСтрок");


Строка 101 (файл Классы/Тест.epf) :
Функция ПолучитьУсловие(НазваниеУсловия) Экспорт
	НайденнаяСтрока = НайтиСтрокуУсловия(НазваниеУсловия);
	Если НайденнаяСтрока = Неопределено Тогда
		//...
		Возврат Неопределено;
	КонецЕсли; 
	
	лУсловие = НайденнаяСтрока.Значение;
	//...
	
	Возврат лУсловие;
КонецФункции
...Показать Скрыть


:idea: Может, лучше обсуждение ошибок перенести в форум обработки?
Ответили: (31) (30)
# Ответить
30. artbear 20.11.2009 11:01
(29) Да, давай в форум, счас тему создам
ЗЫ возможно, что ошибку я исправил, но не выложил на сайт :(
# Ответить
31. artbear 20.11.2009 14:40
Выложена версия 1.17
История в описании

(29) На самом деле на сайте была устаревшая версия.
# Ответить
32. artbear 20.11.2009 14:47
Добавил скриншот.
# Ответить
33. so-quest 26.11.2009 01:07
Такой вот вопрос - почему сама обработка не покрыта тестами? или я просто не нашел?
Ответили: (34)
# Ответить
34. artbear 26.11.2009 13:03
(33) Есть такая проблема, тестирование произведено только частично :(
Работа самого тестирования протестирована различными расчетчиками ожиданий.
Фактически нет автоматических тестов на браузер тестов :(
# Ответить
35. Ruler 30.11.2009 14:40
А Вы 1С сценарное тестирование видели?
Ответили: (36)
# Ответить
36. artbear 30.11.2009 15:50
(35) Видел, но досконально не разбирался :(
Только планирую начать анализ этой системы.
Насколько я понял, в ней все-таки не все задачи можно протестировать.
Например, я не понял (не увидел?) того, как можно протестировать внешние печатные формы.
# Ответить
37. dinopopyys 15.04.2011 17:27
Брателло, оооочень мало ты написал про своё творение. Скажем я вот так и не понял как вообще может программа понять как должна работать моя разработка чтоб оттестировать ее работу грамотно. Я так понимаю именно для этих нужд ты ее писал?
Посему даж качать ее стремно.
# Ответить
38. 924 26.06.2014 14:08
Добрый день! У меня не хватает $, пришлите мне пожалуйста Тестирование_в_v8_FuncTest_v115.rar на почту vodoroslia@gmail.com. Спасибо!
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл