Skip to content

Commit

Permalink
Merge branch 'release/4.2.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Jul 5, 2017
2 parents 0b23ba7 + 2e24666 commit 0a83476
Show file tree
Hide file tree
Showing 525 changed files with 16,330 additions and 39,624 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

[ Вставьте описание бага или проблемы ]

** Шаги для воспроизведения **
**Шаги для воспроизведения**

1. [ Вставьте первый шаг ]
2. [ Вставьте второй шаг ]
Expand All @@ -23,7 +23,7 @@
* [ параметры запуска
* обычное/управляемое приложение, тонкий/толстый клиент и т.п. ]

** Прикладывайте скриншоты **
**Прикладывайте скриншоты**

## Также приветствуется описание в формате Gherkin

Expand Down
Binary file not shown.
Binary file modified Plugins/ГенераторОтчетаJUnitXML.epf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Plugins/ЗагрузчикКаталога.epf
Binary file not shown.
Binary file modified Plugins/ЗагрузчикФайла.epf
Binary file not shown.
Binary file modified Plugins/ЗапросыИзБД.epf
Binary file not shown.
Binary file added Plugins/Настройки.epf
Binary file not shown.
Binary file modified Plugins/ПарсерКоманднойСтроки.epf
Binary file not shown.
Binary file modified Plugins/ПостроительДереваТестов.epf
Binary file not shown.
Binary file modified Plugins/СериализаторMXL.epf
Binary file not shown.
Binary file modified PluginsTemplates/ШаблонЗагрузчика.epf
Binary file not shown.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ xUnitFor1C - простой и мощный фреймворк для тести

xUnitFor1C работает с любыми конфигурациями, полностью независима, но может быть встроена в конфигурацию.

Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.5 и выше.
Позволяет открывать/тестировать в разных режимах - обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.6 и выше.

Версии с 4.1.0.0 работают только с платформой 1С версии 8.3.6 и выше в режиме совместимости с 8.3.6 и выше.

Для использования на платформе 1С 8.2 и 8.3 до 8.3.6 используйте версии 4.0.0.0 и 3.0.0.8

Версии с 4.1.0.0 работают только с платформой 1С версии 8.3.5 и выше. Для использования на платформе 1С 8.2 и 8.3 до 8.3.5 используйте версии 4.0.0.0 и 3.0.0.8

Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Tests/Plugins/Тесты_ЗагрузчикФайла.epf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Tests/Plugins/Тесты_СериализаторMXL.epf
Binary file not shown.
127 changes: 127 additions & 0 deletions Tests/Smoke/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Дымовые тесты

Существующая универсальная реализация дымовых тестов позволяет использовать базовые/«дымовые» проверки, для которых не требуется написание сложных тестов или перестройка схемы разработки конфигурации 1С.

Тесты удобно использовать перед выпуском релиза/обновлений конфигурации и/или перед установкой релиза/обновлений в рабочую базу.

Реализация тестов проверяет открытие/закрытие различных форм с учетом прав доступа (права "Использование/Просмотр") для пользователей с различными ролями (полные или ограниченные права).

Проверяются следующие виды наиболее активно используемых форм:

+ формы списков и формы выбора справочников
+ форма элементов справочников
+ формы списков и формы выбора документов
+ формы документов
+ формы отчетов
+ формы обработок

Также для каждого справочника проверяются 3 дополнительных теста c учетом прав доступа (права "Просмотр/Интерактивное добавление"):

1. создание нового элемента и открытие его формы
1. копирование существующего элемента и открытие формы созданного элемента
1. открытие формы существующего элемента

Для каждого документа проверяются 3 дополнительных теста c учетом прав доступа (права "Просмотр/Интерактивное добавление"):

1. открытие формы существующего документа (берется последний по дате)
1. перенос существующего документа на текущий день и открытие формы этого документа
1. открытие формы нового документа

## Настройка дымовых тестов под конкретную конфигурацию

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

Например, часть форма не предназначена для работы в интерактивном режиме и т.п.

Не рекомендуется добавлять в исключения формы по другим причинам – например, эти формы редко открываются, не работают в выбранном виде клиента и т.п., т.к. это приводит к ошибкам, которые постоянно существуют, что не всегда верно.

Подобные формы необходимо добавить в исключения.

### Исключения для версии 4.1.Х.Х и выше

Для добавления исключения в корне фреймворка xUnitFor1C, рядом с файлом xddTestRunner.epf, нужно создать файл smoke.json

Это файл json-формата с различными коллекциями и массивами

#### В нем могут быть 4 коллекции – Справочники, Документы, Отчеты, Обработки

И подразделы/простые массивы-перечисления (для справочников и документов) – Списки, Существующие, Новые, ПеренестиДату (для документов)

В перечислении уже указываются конкретные имена метаданных, которые не нужно открывать, а нужно пропустить.

#### Отдельная настройка `ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций`

Она отвечает за исключение форм, которые зависят от отключенных функциональных опций.

Тип: Булево (true или false)

По умолчанию настройка не используется, т.е. проверки функциональных опций не выполняется.

Настройка важна для `толстых` конфигураций, например, ERP или УХ.

#### Примерный текст файла

```json
{
"smoke": {

"ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" : true,

"Справочники": {
"Списки": [
"ПростойСправочник",
"СоставПериметра"
],
"Новые": [
"ПростойСправочник2",
"СоставПериметра"
]
},
"Отчеты": [
"Отчет1"
],
"Обработки": [
"xddGuidShow"
]
}
}
```

### Исключения для версии ниже 4.1.Х.Х (более сложный способ) - не рекомендуется

Описанный ниже способ хуже, чем вышеуказанный метод указания исключений:

+ нужно менять код внешней обработки, что усложняет сопровождение
+ код обработки менять сложнее, чем простой текстовый файл
+ текст файла удобнее держать в репозитории исходников, чем код внешней обработки

Исключения задаются непосредственно в файле-теста `Tests\Smoke\Тесты_ОткрытиеФормКонфигурации.epf`

В конце файла есть набор методов

```bsl
+ //{ блок переопределения исключений, чтобы не открывать формы
+ Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт
+ Функция ПолучитьСписокИсключений_Справочники_Существующие() Экспорт
+ Функция ПолучитьСписокИсключений_Справочники_Новые() Экспорт
+ Функция ПолучитьСписокИсключений_Документы_Списки() Экспорт
+ Функция ПолучитьСписокИсключений_Документы_Существующие() Экспорт
+ Функция ПолучитьСписокИсключений_Документы_ПеренестиДату() Экспорт
+ Функция ПолучитьСписокИсключений_Документы_Новые() Экспорт
+ Функция ПолучитьСписокИсключений_Отчеты() Экспорт
+ Функция ПолучитьСписокИсключений_Обработки() Экспорт
+ //} конец блока
```

Формат этих методов
```bsl
Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт
Результат = Новый СписокЗначений;
Результат.Добавить("ирАлгоритмы"); // Аналогично добавляем наименования нужных метаданных
Возврат Результат;
КонецФункции
```

Нужно добавить имя метаданного-исключения в соответствующий метод в виде указанного кода.
Binary file not shown.
Binary file added Tests/TestConfig-no-modal.cf
Binary file not shown.
Binary file modified Tests/TestConfig.cf
Binary file not shown.
Binary file not shown.
Binary file modified Utils/xddTestsConvertIntoRebornFormat.epf
Binary file not shown.
Binary file added fixtures/core/Тесты_Настройки.epf
Binary file not shown.
5 changes: 5 additions & 0 deletions fixtures/core/Тесты_Настройки.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"Тесты_Настройки": {
"Ключ": "значение для Тесты_Настройки",
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"Ключ": "значение для Тесты_Настройки",
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"Тесты_Настройки": {
"configpath": "Тесты_Настройки_Потомок.json"
}
}
7 changes: 3 additions & 4 deletions releaseCheck.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
Перед выпуском релиза нужно выполнить операции по следующему чек-листу:
- Изменить номер версии в методе Версия() модуля обработки xddTestRunner.epf
- Изменить номер версии в методе Версия() модуля обработки xddDataFixtureGen.epf
- Изменить номер версии в методе Версия() модуля обработки Tests\Gui83\UILogToScript.epf
- Изменить номер версии в методе Версия() модуля обработки Plugins\СериализаторMXL.epf
- Изменить номер версии в метаданных конфигурации для 8.2 и 8.3
- Сохранить конфигурацию с новым номером версии в файл Tests\TestConfig.cf
- Сохранить конфигурацию с новым номером версии в файл Tests\TestConfig-Taxi83.cf, предварительно открыв базу в режиме 8.3
- Сохранить конфигурацию с новым номером версии в файл Tests\TestConfig-no-modal.cf, предварительно открыв базу в режиме 8.3
- Выполнить все тесты из папки Tests. Ошибок быть не должно.
- Описать все изменения версии в файле history.txt
- Убедиться, что в задачах/issues на Гитхабе для нового релиза/milestone не осталось невыполненных задач.
- Если все-таки есть незавершенные задачи, их нужно убрать из нового релиза/milestone.
- Если все-таки есть незавершенные задачи, их нужно перенести из нового релиза/milestone в следующий релиз.
20 changes: 20 additions & 0 deletions smoke.example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"smoke": {
"ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" : true,
"Справочники": {
"Списки": [
"ПростойСправочник"
],
"Новые": [
"ПростойСправочник2"
]
},
"Отчеты": [
"Отчет1"
],
"Обработки": [
"xddGuidShow",
"ТестОбработка_Форма_ИсключениеПриОткрытии"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции

&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface

// { Report generator interface
&НаКлиенте
Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт
Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
Возврат СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции

&НаСервере
Функция СоздатьОтчетНаСервере(РезультатыТестирования)
Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции

&НаКлиенте
Процедура Показать(Отчет) Экспорт
Отчет.Показать();
КонецПроцедуры

&НаКлиенте
Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт

СтрокаXML = Отчет.ПолучитьТекст();

ИмяФайла = ПолныйПутьФайла;

// Запись файла с кодировкой "UTF-8", а не "UTF-8 with BOM"
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
ЗаписьТекста.Закрыть();

ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла,,, Истина);
КоличествоСтрок = СтрЧислоСтрок(СтрокаXML);
Для НомерСтроки = 1 По КоличествоСтрок Цикл
Стр = СтрПолучитьСтроку(СтрокаXML, НомерСтроки);
ЗаписьТекста.ЗаписатьСтроку(Стр);
КонецЦикла;
ЗаписьТекста.Закрыть();

КонецПроцедуры
// } Report generator interface

// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers

Loading

0 comments on commit 0a83476

Please sign in to comment.