85
docs/run.md
@ -1,85 +0,0 @@
|
||||
# Запуск
|
||||
|
||||
Для запуска тестов необходимо запустить 1С:Предприятие с параметром `RunUnitTests`, при необходимости можно указать путь к файлу конфигурации запуска.
|
||||
|
||||
## Конфигурация запуска
|
||||
|
||||
Конфигурация настраивается в файле json и может иметь следующие параметры:
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|-------------------|-----------|-----------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| `filter` | `Object` | Object, смотрите ниже | Параметры фильтрации, поиска тестов |
|
||||
| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` |
|
||||
| `reportPath` | `String` | `""` | Путь к формируемому отчету, можно указать или каталог (в которому будет создан файл отчета) или путь к файлу |
|
||||
| `closeAfterTests` | `Boolean` | `True` | Признак закрытия 1С:Предприятие по завершению тестирования |
|
||||
| `showReport` | `Boolean` | `True` | Открыть форму отчета завершению тестирования |
|
||||
| `logging` | `Object` | Смотрите ниже | Параметры логирования, подробнее ниже |
|
||||
|
||||
Параметры фильтрации:
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|---------------|---------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `extensions` | `Array` | `["tests"]` | Список имен расширений, из которых грузятся тесты |
|
||||
| `modules` | `Array` | `Null` | Список имен модулей, из которых грузятся тесты |
|
||||
| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста]`) |
|
||||
| `suites` | `Array` | `Null` | **Не реализованно.** Список имен тестовых наборов, которые будут запускаться |
|
||||
| `tags` | `Array` | `Null` | **Не реализованно.** Список тегов, которые будут запускаться |
|
||||
| `contexts` | `Array` | `Null` | Список имен контекстов исполнения, в которых будут запускаться тесты |
|
||||
| `paths` | `Array` | `Null` | **Не реализованно.** Список полных путей к исполняемым тестам (`[имя модуля.имя теста|имя модуля.имя теста.имя контекста]`) |
|
||||
|
||||
Параметры логирования:
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|---------------|-----------|-----------------------|---------------------------------------------------------------------|
|
||||
| `file` | `String` | `""` | Путь к файлу лога |
|
||||
| `enable` | `Boolean` | `Null` | Признак использования логирования. Если не указан, зависит от файла, если он указан - вкл, если не указан - выкл |
|
||||
| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` |
|
||||
|
||||
Примеры:
|
||||
|
||||
1. Запустить тесты из расширения `tests`, расположенные в модулях `МодульТестов1`, `МодульТестов2`, закрыть предприятие по завершении и сохранить отчет в формате `junit`
|
||||
|
||||
```JSON
|
||||
{
|
||||
"filter": {
|
||||
"modules": ["МодульТестов1", "МодульТестов2"]
|
||||
},
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml",
|
||||
"reportFormat": "jUnit",
|
||||
"closeAfterTests": true
|
||||
}
|
||||
```
|
||||
|
||||
2. Запустить все тесты из расширения `YAXUNIT` и сохранить отчет файл `C:\temp\jUnit\report.xml`, остальные параметры будут установлены по умолчанию
|
||||
|
||||
```JSON
|
||||
{
|
||||
"filter": {
|
||||
"extensions": ["YAXUNIT"]
|
||||
},
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml"
|
||||
}
|
||||
```
|
||||
|
||||
3. Запустить все тесты с выводом подробного лога в файл, сохранить отчет файл `C:\temp\jUnit\report.xml`
|
||||
|
||||
```JSON
|
||||
{
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml",
|
||||
"logging": {
|
||||
"file": "C:\\temp\\jUnit\\tests.log",
|
||||
"level": "debug"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Строка запуска предприятия
|
||||
|
||||
`[путь к клиенту 1С] ENTERPRISE [Параметры подключения к ИБ] [Параметры авторизации] /C RunUnitTests=/путь/к/конфигурационному/файлу`
|
||||
|
||||
*После загрузки расширения в информационную базу необходимо отключить у него `безопасный режим` и `защиту от опасных действий`*
|
||||
|
||||
Пример:
|
||||
|
||||
`"C:\Program Files\1cv8\8.3.18.1698\bin\1cv8c.exe" ENTERPRISE /IBName MyInfoBase /N Admin /C RunUnitTests=C:\tmp\test-config.json`
|
||||
Запуск тестов в режиме тонкого клиента на информационной базе `MyInfoBase` под пользователем `Admin` по конфигурации указанной в файле `C:\tmp\test-config.json`
|
20
documentation/.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
41
documentation/README.md
Normal file
@ -0,0 +1,41 @@
|
||||
# Website
|
||||
|
||||
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
|
||||
|
||||
### Installation
|
||||
|
||||
```
|
||||
$ yarn
|
||||
```
|
||||
|
||||
### Local Development
|
||||
|
||||
```
|
||||
$ yarn start
|
||||
```
|
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
### Build
|
||||
|
||||
```
|
||||
$ yarn build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
### Deployment
|
||||
|
||||
Using SSH:
|
||||
|
||||
```
|
||||
$ USE_SSH=true yarn deploy
|
||||
```
|
||||
|
||||
Not using SSH:
|
||||
|
||||
```
|
||||
$ GIT_USER=<Your GitHub username> yarn deploy
|
||||
```
|
||||
|
||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
7
documentation/api/index.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Программный интерфейс
|
||||
|
||||
Здесь будет расположена информация о программном интерфейсе YAxUnit
|
3
documentation/babel.config.js
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
7
documentation/contributing/index.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Руководство разработчика
|
||||
|
||||
Здесь будут собраны материалы по доработке тестового движка.
|
32
documentation/docs/first-test.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
tags: [Getting started]
|
||||
---
|
||||
|
||||
# Пишем первый тест
|
||||
|
||||
Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - ИсполняемыеСценарии и реализовать тесты.
|
||||
|
||||
```bsl title="ОМ_ПервыйТест"
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТест("Сложение")
|
||||
.СПараметрами(2, 3, 5)
|
||||
.СПараметрами(2, -3, -1)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(ПервыйОперанд + ВторойОперанд)
|
||||
.ИмеетТип("Число")
|
||||
.Равно(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
```
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
BIN
documentation/docs/install/images/gh-release-content.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
documentation/docs/install/images/gh-release.png
Normal file
After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
BIN
documentation/docs/install/images/plugin-install-from-rep.png
Normal file
After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
67
documentation/docs/install/install-plugin.md
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
sidebar_label: Установка плагина EDT
|
||||
---
|
||||
# Установка плагина для работы с тестами в EDT
|
||||
|
||||
```mdx-code-block
|
||||
import Tabs from '@theme/Tabs';
|
||||
|
||||
import TabItem from '@theme/TabItem';
|
||||
```
|
||||
|
||||
Для того, что бы вам и нам было проще писать тесты мы разработали плагин для EDT.
|
||||
|
||||
С его помощью вы сможете:
|
||||
|
||||
* Запускать и отлаживать свои тесты;
|
||||
* Просматривать результаты выполнения.
|
||||
* И [что-то еще](https://github.com/bia-technologies/edt-test-runner/blob/develop/docs/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8.md)
|
||||
|
||||
Для установки плагина вам необходимо воспользоваться стандартным функционалом Eclipse (EDT) `Установить новое ПО...`.
|
||||
|
||||
* Открываем EDT.
|
||||
* Переходим к `Установить новое ПО` (в меню `Справка`);
|
||||
* Добавляем новый репозиторий;
|
||||
|
||||
```mdx-code-block
|
||||
<Tabs>
|
||||
<TabItem value="master" label="Основной репозиторий">
|
||||
```
|
||||
|
||||
```url
|
||||
https://bia-technologies.github.io/edt-test-runner/repository
|
||||
```
|
||||
|
||||
```mdx-code-block
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="develop" label="Develop">
|
||||
```
|
||||
|
||||
```url
|
||||
https://bia-technologies.github.io/edt-test-runner/dev/repository
|
||||
```
|
||||
|
||||
```mdx-code-block
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
```
|
||||
|
||||
![Установка плагина](images/plugin-install-from-rep.png)
|
||||
|
||||
:::tip совет
|
||||
|
||||
Для ускорения установки можно убрать галочку `Обращаться во время инсталляции ко всем сайтам ...`
|
||||
|
||||
:::
|
||||
|
||||
* Нажимаем далее;
|
||||
* Принимаем лицензию;
|
||||
* Соглашаемся с предупреждением безопасности;
|
||||
* И перезагружаем IDE.
|
||||
:::note примечание
|
||||
|
||||
EDT будет долго перезагружаться и это нормально.
|
||||
|
||||
:::
|
@ -1,29 +1,43 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
tags: [Getting started]
|
||||
---
|
||||
|
||||
# Установка
|
||||
|
||||
YAXUnit - это расширение для 1С:Предприятия, которое надо добавить к вашему проекту.
|
||||
|
||||
## Требования
|
||||
|
||||
* 1С:Предприятие версии 8.3.10 или старше
|
||||
|
||||
## Установка в EDT
|
||||
|
||||
### Первичная установка тестового движка в рабочее пространство (workspace)
|
||||
|
||||
1. Качаем архив [последнего релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
2. Распаковываем содержимое в каталог с исходниками (не в воркспейс)
|
||||
3. Импортируем проект
|
||||
1. Скачаем архив [релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
![Страница релиза](images/gh-release.png)
|
||||
|
||||
2. Копируем из архива расширение расположенное в каталоге `exts/yaxunit/` в свой каталог с исходниками (не в воркспейс)
|
||||
![Содержимое архива](images/gh-release-content.png)
|
||||
3. Импортируем проект расширения в воркспейс
|
||||
![Импорт проекта](images/project-import.png)
|
||||
4. Привязываем импортированный проект расширения к конфигурации
|
||||
|
||||
![Связь с базовым проектом](images/link-base-project.png)
|
||||
|
||||
5. Обновляем конфигурацию
|
||||
6. В конфигураторе снимаем с расширения **безопасный режим** и **защиту от опасных действий**
|
||||
7. Готово, можно приступить к написанию тестов.
|
||||
|
||||
:::tip совет
|
||||
Для удобства разработки тестов рекомендуется [установить плагин](install-plugin.md)
|
||||
:::
|
||||
|
||||
### Обновление тестового движка
|
||||
|
||||
1. Качаем архив [последнего релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
1. Скачаем архив [релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
2. Если вы дорабатывали движок, то скачиваем архив оригинальной установленной версии движка
|
||||
3. Разархивируем их во временный каталог
|
||||
4. Воспользуемся механизмом сравнения объединения EDT
|
||||
|
||||
![Сравнение объединение](images/compare.png)
|
||||
* Второй источник - каталог к новой версии тестового движка
|
||||
* Использование третьего источника нужно для трехстороннего сравнения и применяется при доработках движка.
|
||||
@ -32,7 +46,8 @@
|
||||
|
||||
## Установка в конфигуратор
|
||||
|
||||
1. Качаем расширение (cfe) из [последнего релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
1. Скачаем расширение (cfe) [релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
![Страница релиза](images/gh-release.png)
|
||||
2. Загружаем в конфигуратор
|
||||
3. Снимаем с расширения **безопасный режим** и **защиту от опасных действий**
|
||||
4. Готово
|
72
documentation/docs/run/configuration.md
Normal file
@ -0,0 +1,72 @@
|
||||
# Конфигурация запуска
|
||||
|
||||
Конфигурация настраивается в файле json и может иметь следующие параметры.
|
||||
|
||||
## Основные параметры
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|-------------------|-----------|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| `filter` | `Object` | [Object, смотрите ниже](#параметры-фильтрации) | Параметры фильтрации, поиска тестов |
|
||||
| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` |
|
||||
| `reportPath` | `String` | `""` | Путь к формируемому отчету, можно указать или каталог (в которому будет создан файл отчета) или путь к файлу |
|
||||
| `closeAfterTests` | `Boolean` | `True` | Признак закрытия 1С:Предприятие по завершению тестирования |
|
||||
| `showReport` | `Boolean` | `True` | Открыть форму отчета завершению тестирования |
|
||||
| `logging` | `Object` | [Object, смотрите ниже](#параметры-логирования) | Параметры логирования, подробнее ниже |
|
||||
|
||||
## Параметры фильтрации
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|---------------|---------|-----------------------|------------------------------------------------------------------------------|
|
||||
| `extensions` | `Array` | `["tests"]` | Список имен расширений, из которых грузятся тесты |
|
||||
| `modules` | `Array` | `Null` | Список имен модулей, из которых грузятся тесты |
|
||||
| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста]`) |
|
||||
| `suites` | `Array` | `Null` | **Не реализованно.** Список имен тестовых наборов, которые будут запускаться |
|
||||
| `tags` | `Array` | `Null` | **Не реализованно.** Список тегов, которые будут запускаться |
|
||||
| `contexts` | `Array` | `Null` | Список имен контекстов исполнения, в которых будут запускаться тесты |
|
||||
| `paths` | `Array` | `Null` | **Не реализованно.** Список полных путей к исполняемым тестам |
|
||||
|
||||
## Параметры логирования
|
||||
|
||||
| Имя параметра | Тип | Значение по умолчанию | Описание |
|
||||
|---------------|-----------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `file` | `String` | `""` | Путь к файлу лога |
|
||||
| `enable` | `Boolean` | `Null` | Признак использования логирования. Если не указан, зависит от параметра `file`, если он указан - вкл, если не указан - выкл |
|
||||
| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` |
|
||||
|
||||
Примеры:
|
||||
|
||||
1. Запустить тесты расположенные в модулях `МодульТестов1`, `МодульТестов2`, закрыть предприятие по завершении и сохранить отчет в формате `junit`
|
||||
|
||||
```JSON
|
||||
{
|
||||
"filter": {
|
||||
"modules": ["МодульТестов1", "МодульТестов2"]
|
||||
},
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml",
|
||||
"reportFormat": "jUnit",
|
||||
"closeAfterTests": true
|
||||
}
|
||||
```
|
||||
|
||||
2. Запустить все тесты из расширения `YAXUNIT` и сохранить отчет файл `C:\temp\jUnit\report.xml`, остальные параметры будут установлены по умолчанию
|
||||
|
||||
```JSON
|
||||
{
|
||||
"filter": {
|
||||
"extensions": ["YAXUNIT"]
|
||||
},
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml"
|
||||
}
|
||||
```
|
||||
|
||||
3. Запустить все тесты с выводом подробного лога в файл, сохранить отчет файл `C:\temp\jUnit\report.xml`
|
||||
|
||||
```JSON
|
||||
{
|
||||
"reportPath": "C:\\temp\\jUnit\\report.xml",
|
||||
"logging": {
|
||||
"file": "C:\\temp\\jUnit\\tests.log",
|
||||
"level": "debug"
|
||||
}
|
||||
}
|
||||
```
|
BIN
documentation/docs/run/images/from-configurator.png
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
documentation/docs/run/images/from-edt.png
Normal file
After Width: | Height: | Size: 78 KiB |
30
documentation/docs/run/run.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Запуск
|
||||
|
||||
Для запуска тестов необходимо запустить 1С:Предприятие с параметром `RunUnitTests`, при необходимости можно указать путь к файлу [конфигурации запуска](configuration.md).
|
||||
|
||||
:::caution Важно
|
||||
*После загрузки расширения в информационную базу необходимо отключить у него `безопасный режим` и `защиту от опасных действий`*
|
||||
:::
|
||||
|
||||
## Запуск из EDT
|
||||
|
||||
Для запуска тестов из EDT необходимо установить [плагин](../install/install-plugin.md), либо вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска.
|
||||
|
||||
![EDT](images/from-edt.png)
|
||||
|
||||
## Запуск из конфигуратора
|
||||
|
||||
Для запуска тестов из конфигуратора вы можете
|
||||
|
||||
* Вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска
|
||||
![Конфигуратор](images/from-configurator.png)
|
||||
* Воспользоваться [интерфейсом настройки](../yaxunit-ui.md#интерфейс-настройки-конфигурации)
|
||||
|
||||
## Строка запуска предприятия
|
||||
|
||||
`[путь к клиенту 1С] ENTERPRISE [Параметры подключения к ИБ] [Параметры авторизации] /C RunUnitTests=/путь/к/конфигурационному/файлу`
|
||||
|
||||
Пример:
|
||||
|
||||
`"C:\Program Files\1cv8\8.3.18.1698\bin\1cv8c.exe" ENTERPRISE /IBName MyInfoBase /N Admin /C RunUnitTests=C:\tmp\test-config.json`
|
||||
Запуск тестов в режиме тонкого клиента на информационной базе `MyInfoBase` под пользователем `Admin` по конфигурации указанной в файле `C:\tmp\test-config.json`
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
tags: [Getting started, Asserts]
|
||||
---
|
||||
|
||||
# Утверждения
|
||||
|
||||
Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура.
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
tags: [Getting started]
|
||||
---
|
||||
|
||||
# Контекст
|
||||
|
||||
Одним из важнейших блоков работы тестового движка является механизм контекстов.
|
@ -1,8 +1,13 @@
|
||||
---
|
||||
description: Create a doc page with rich content.
|
||||
tags: [Getting started]
|
||||
---
|
||||
|
||||
# Пользовательский API
|
||||
|
||||
Для разработчиков тестов расширение предоставляет API для:
|
||||
|
||||
* [Регистрации тестовых сценариев](test-registration.md)
|
||||
* [Регистрации тестовых сценариев](test-registration)
|
||||
* Формирования [утверждений](assertions.md) для проверки результата работы различных механизмов системы.
|
||||
* Создания [тестовых данных](test-data.md)
|
||||
* Передачи данных между тестами используя [контекст](context.md)
|
@ -1,3 +1,6 @@
|
||||
---
|
||||
tags: [Getting started, Mock]
|
||||
---
|
||||
# Мокито
|
||||
|
||||
Мокито - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки.
|
||||
@ -28,9 +31,15 @@
|
||||
|
||||
Работа с Мокито делится на 3 стадии:
|
||||
|
||||
1. Обучение - настраиваем поведение методов системы
|
||||
2. Прогон - выполнение теста целевого метода
|
||||
3. Проверка - анализ вызовов
|
||||
```mermaid
|
||||
flowchart LR
|
||||
training(Обучение) --> run(Прогон, запуск тестового метода)
|
||||
run --> check(Проверка)
|
||||
```
|
||||
|
||||
* [Обучение](#обучение) - настраиваем поведение методов системы
|
||||
* [Прогон](#прогон) - выполнение теста целевого метода
|
||||
* [Проверка](#проверка) - анализ вызовов
|
||||
|
||||
## Использование
|
||||
|
||||
@ -44,7 +53,7 @@
|
||||
* использовать явный вызов метода с параметрами на стадии обучения, например `Мокито.Обучение(Справочники.ИсточникиДанных).Когда(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Вернуть(Результат)`
|
||||
* использовать явный вызов метода с параметрами на стадии проверки, например `Мокито.Проверить(Справочники.ИсточникиДанных).КоличествоВызовов(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Больше(1)`
|
||||
|
||||
Примеры добавления методов в расширение:
|
||||
Примеры добавления методов в расширение.
|
||||
|
||||
#### Метод общего модуля
|
||||
|
||||
@ -178,7 +187,7 @@
|
||||
1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())).Вернуть(3)`
|
||||
2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр()).Вернуть(3)`
|
||||
|
||||
## Прогон
|
||||
### Прогон
|
||||
|
||||
После обучения, настройки реакций на вызовы методов, можно запускать тест нужного метода. Для перехода к этому режиму работы Мокито используется метод `Прогон`.
|
||||
|
||||
@ -198,7 +207,7 @@
|
||||
Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, 2); // Результат будет равен 2
|
||||
```
|
||||
|
||||
## Проверка
|
||||
### Проверка
|
||||
|
||||
После прогона теста можно проверить какие методы, с какими параметрами вызывались. Для этих целей необходимо воспользоваться методом `Проверить`
|
||||
|
@ -1,3 +1,6 @@
|
||||
---
|
||||
tags: [Getting started, Test data]
|
||||
---
|
||||
# Тестовые данные
|
||||
|
||||
Почти в каждом тесте разработчику необходимы данные, которые он будет использовать при тестировании: элементы справочников, документы, остатки и тд.
|
@ -1,3 +1,6 @@
|
||||
---
|
||||
tags: [Getting started]
|
||||
---
|
||||
# Регистрация тестовых методов (ЮТТесты)
|
||||
|
||||
Кроме того, чтобы написать тестовые сценарии, разработчик должен зарегистрировать их в движке.
|
@ -2,7 +2,7 @@
|
||||
|
||||
## Интерфейс отчета
|
||||
|
||||
Для просмотра результатов тестирования в режиме 1С:Предприятие, вам необходимо в параметрах запуска указать [настройку](../README.md#конфигурация-запуска) `showReport`
|
||||
Для просмотра результатов тестирования в режиме 1С:Предприятие, вам необходимо в параметрах запуска указать [настройку](run) `showReport`
|
||||
Например, создав файла настроек
|
||||
|
||||
```json
|
178
documentation/docusaurus.config.js
Normal file
@ -0,0 +1,178 @@
|
||||
// @ts-check
|
||||
// Note: type annotations allow type checking and IDEs autocompletion
|
||||
|
||||
const lightCodeTheme = require('prism-react-renderer/themes/github');
|
||||
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
|
||||
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: 'YAx Unit',
|
||||
tagline: 'Модульные тесты для 1С - это не сложно',
|
||||
favicon: 'img/logo.png',
|
||||
|
||||
// Set the production url of your site here
|
||||
url: 'https://bia-technologies.github.io/',
|
||||
// Set the /<baseUrl>/ pathname under which your site is served
|
||||
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||
baseUrl: '/yaxunit',
|
||||
|
||||
// GitHub pages deployment config.
|
||||
// If you aren't using GitHub pages, you don't need these.
|
||||
organizationName: 'bia-technologies', // Usually your GitHub org/user name.
|
||||
projectName: 'yaxunit', // Usually your repo name.
|
||||
deploymentBranch: 'gh-pages',
|
||||
|
||||
onBrokenLinks: 'throw',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
|
||||
// Even if you don't use internalization, you can use this field to set useful
|
||||
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||
// to replace "en" with "zh-Hans".
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en'],
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: {
|
||||
routeBasePath: 'docs',
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
// Please change this to your repo.
|
||||
// Remove this to remove the "edit this page" links.
|
||||
editUrl:
|
||||
'https://github.com/bia-technologies/yaxunit/',
|
||||
},
|
||||
blog: false,
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
}),
|
||||
]
|
||||
],
|
||||
plugins: [
|
||||
[
|
||||
'@docusaurus/plugin-content-docs',
|
||||
{
|
||||
id: 'api',
|
||||
path: 'api',
|
||||
routeBasePath: 'api',
|
||||
sidebarPath: require.resolve('./sidebarsAPI.js'),
|
||||
// ... other options
|
||||
},
|
||||
],
|
||||
[
|
||||
'@docusaurus/plugin-content-docs',
|
||||
{
|
||||
id: 'lessons',
|
||||
path: 'lessons',
|
||||
routeBasePath: 'lessons',
|
||||
sidebarPath: require.resolve('./sidebarsLessons.js'),
|
||||
// ... other options
|
||||
},
|
||||
],
|
||||
[
|
||||
'@docusaurus/plugin-content-docs',
|
||||
{
|
||||
id: 'contributing',
|
||||
path: 'contributing',
|
||||
routeBasePath: 'contributing',
|
||||
sidebarPath: require.resolve('./sidebarsContributing.js'),
|
||||
// ... other options
|
||||
},
|
||||
]
|
||||
],
|
||||
|
||||
themeConfig:
|
||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||
({
|
||||
// Replace with your project's social card
|
||||
navbar: {
|
||||
title: 'YAx Unit',
|
||||
logo: {
|
||||
alt: 'YaxUnit Logo',
|
||||
src: 'img/logo.png',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'user-api/index',
|
||||
position: 'left',
|
||||
label: 'Описание',
|
||||
},
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'index',
|
||||
docsPluginId: 'lessons',
|
||||
position: 'left',
|
||||
label: 'Уроки',
|
||||
},
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'index',
|
||||
docsPluginId: 'api',
|
||||
position: 'left',
|
||||
label: 'API',
|
||||
},
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'index',
|
||||
docsPluginId: 'contributing',
|
||||
position: 'left',
|
||||
label: 'Руководство разработчика',
|
||||
},
|
||||
{
|
||||
href: 'https://github.com/bia-technologies/yaxunit',
|
||||
label: 'bia-technologies/yaxunit',
|
||||
position: 'right',
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
links: [
|
||||
{
|
||||
title: 'Docs',
|
||||
items: [
|
||||
{
|
||||
label: 'Tutorial',
|
||||
to: '/docs/user-api',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Community',
|
||||
items: [
|
||||
{
|
||||
label: 'Telegram',
|
||||
href: 'https://t.me/BIAOpenTools/12',
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'More',
|
||||
items: [
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/bia-technologies/yaxunit',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Copyright © ${new Date().getFullYear()} BIA Technologies, Inc. Built with Docusaurus.`,
|
||||
},
|
||||
prism: {
|
||||
theme: lightCodeTheme,
|
||||
darkTheme: darkCodeTheme,
|
||||
},
|
||||
}),
|
||||
markdown: {
|
||||
mermaid: true,
|
||||
},
|
||||
themes: ['@docusaurus/theme-mermaid'],
|
||||
};
|
||||
|
||||
module.exports = config;
|
3
documentation/lessons/index.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Уроки и примеры использования YAxUnit
|
||||
|
||||
Здесь будут собраны различные материалы для лучшего понимая принципов написания тестов в работы с YAxUnit
|
12966
documentation/package-lock.json
generated
Normal file
44
documentation/package.json
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "documentation",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "2.3.1",
|
||||
"@docusaurus/preset-classic": "2.3.1",
|
||||
"@docusaurus/theme-mermaid": "^2.3.1",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"clsx": "^1.2.1",
|
||||
"prism-react-renderer": "^1.3.5",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "2.3.1"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.14"
|
||||
}
|
||||
}
|
33
documentation/sidebars.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
33
documentation/sidebarsAPI.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
api: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
33
documentation/sidebarsContributing.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
contributing: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
33
documentation/sidebarsLessons.js
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
lessons: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
30
documentation/src/css/custom.css
Normal file
@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Any CSS included here will be global. The classic template
|
||||
* bundles Infima by default. Infima is a CSS framework designed to
|
||||
* work well for content-centric websites.
|
||||
*/
|
||||
|
||||
/* You can override the default Infima variables here. */
|
||||
:root {
|
||||
--ifm-color-primary: #2e8555;
|
||||
--ifm-color-primary-dark: #29784c;
|
||||
--ifm-color-primary-darker: #277148;
|
||||
--ifm-color-primary-darkest: #205d3b;
|
||||
--ifm-color-primary-light: #33925d;
|
||||
--ifm-color-primary-lighter: #359962;
|
||||
--ifm-color-primary-lightest: #3cad6e;
|
||||
--ifm-code-font-size: 95%;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||
[data-theme='dark'] {
|
||||
--ifm-color-primary: #25c2a0;
|
||||
--ifm-color-primary-dark: #21af90;
|
||||
--ifm-color-primary-darker: #1fa588;
|
||||
--ifm-color-primary-darkest: #1a8870;
|
||||
--ifm-color-primary-light: #29d5b0;
|
||||
--ifm-color-primary-lighter: #32d8b4;
|
||||
--ifm-color-primary-lightest: #4fddbf;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||
}
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
197
documentation/src/pages/index.md
Normal file
@ -0,0 +1,197 @@
|
||||
---
|
||||
sidebar_position: 0
|
||||
slug: /
|
||||
---
|
||||
|
||||
# YAXUnit. Расширение для запуска тестов
|
||||
|
||||
----
|
||||
|
||||
[![Actions Status](https://github.com/bia-technologies/yaxunit/actions/workflows/sq.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions)
|
||||
[![Download](https://img.shields.io/github/release/bia-technologies/yaxunit.svg?label=download&style=flat)](https://github.com/bia-technologies/yaxunit/releases/latest)
|
||||
[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases)
|
||||
[![Quality Gate](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=yaxunit)
|
||||
[![Maintainability](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=sqale_rating)](https://sonar.openbsl.ru/dashboard?id=yaxunit)
|
||||
|
||||
Обсудить в [телеграмм чате](https://t.me/BIAOpenTools/12)
|
||||
|
||||
----
|
||||
|
||||
- [Назначение](#назначение)
|
||||
- [Возможности](#возможности)
|
||||
- [Пример тестового модуля](#пример-тестового-модуля)
|
||||
- [Запуск](#запуск)
|
||||
- [Запуск из EDT](#запуск-из-edt)
|
||||
- [Запуск вне EDT](#запуск-вне-edt)
|
||||
- [Благодарности](#благодарности)
|
||||
- [Лицензия](#лицензия)
|
||||
|
||||
## Назначение
|
||||
|
||||
Самостоятельное расширение для написания и выполнения модульного тестирования.
|
||||
|
||||
### Возможности
|
||||
|
||||
- YAXUnit - это расширение с открытым исходным кодом, которое используется для написания и выполнения тестов
|
||||
- Разрабатывалось с оглядкой на JUnit5, пожалуй, лучший фреймворк тестирования
|
||||
- Предоставляет движок выполнения тестов
|
||||
- Предоставляет утверждения для проверки ожидаемых результатов
|
||||
- Тесты могут быть организованы в наборы и выполняться в разных контекстах
|
||||
- Позволяет быстрее и проще не только писать, но и читать тесты
|
||||
- Результаты тестирования могут быть сохранены в отчет, на текущий момент jUnit и json.
|
||||
- Большая часть пользовательского API реализована как [текучие выражения](https://ru.wikipedia.org/wiki/Fluent_interface)
|
||||
- Предусмотрена возможность расширения функциональности, можно регистрировать свои форматы отчетов, добавлять модули с утверждениями
|
||||
- Реализован [плагин для EDT](https://github.com/bia-technologies/edt-test-runner), который упрощает процесс запуска тестов
|
||||
|
||||
Подробнее ознакомиться с функциональностью вы можете изучив [документацию](/docs/user-api).
|
||||
|
||||
А для того, что бы начать писать тесты необходимо [установить расширение](/docs/install) в свою IDE (конфигуратор или EDT).
|
||||
|
||||
## Пример тестового модуля
|
||||
|
||||
Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - `ИсполняемыеСценарии` и реализовать тесты.
|
||||
|
||||
Пример модуля тестов:
|
||||
|
||||
```bsl
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
// Регистрация тестов
|
||||
ЮТТесты // Регистрация тестов выполняет через модуль регистратор
|
||||
.ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов
|
||||
.ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода
|
||||
.ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста
|
||||
.ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля
|
||||
.ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов
|
||||
.ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов
|
||||
.ДобавитьТестовыйНабор("Строковые методы")
|
||||
.ДобавитьТест("СтрНайти")
|
||||
.ДобавитьТест("СтрРазделить");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
Процедура Сложение() Экспорт
|
||||
|
||||
// Реализация теста на сложение
|
||||
ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение
|
||||
.ИмеетТип("Число") // Проверим тип
|
||||
.Заполнено() // Заполненность проверяемого значения
|
||||
.Больше(0) // Сравним с нулем
|
||||
.Равно(5); // Проверим ожидаемый результат
|
||||
|
||||
ЮТест.ОжидаетЧто(-8 + 8, "-8 + 8") // Проверим второй вариант
|
||||
.Равно(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Вычитание() Экспорт
|
||||
|
||||
// Реализация теста на вычитание
|
||||
ЮТест.ОжидаетЧто(2 - 3, "2 - 3").ИмеетТип("Число").Заполнено().Меньше(0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область События
|
||||
|
||||
// Также в тесте можно обрабатывать события выполнения
|
||||
// Например можно реализовать подготовку и удаление тестовых данных
|
||||
// Зачистку временных файлов, настройку системы
|
||||
|
||||
Процедура ПередВсемиТестами() Экспорт
|
||||
// Выполняется перед запуском всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза
|
||||
Сообщить("Запуск тестирования");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередТестовымНабором() Экспорт
|
||||
|
||||
// Выполняется перед каждым тестовым набором для каждого контекста выполнения
|
||||
Контекст = ЮТест.КонтекстТестовогоНабора(); // Контекст набора служит для хранения любых данных, нужных при тестировании
|
||||
// Контекст живет в рамках контекста выполнения,
|
||||
// таки образом, через контекст нельзя передавать данные между серверными и клиентскими тестами
|
||||
Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередКаждымТестом() Экспорт
|
||||
|
||||
// Выполняется перед каждым тестом
|
||||
Контекст = ЮТест.КонтекстТеста(); // Контекст теста служит для хранения любых данных, нужных при тестировании
|
||||
// Контекст создает перед тестом и уничтожается после его выполнения
|
||||
// В контекст например, можно помещать созданные в процессе данные, что бы потом их удалить
|
||||
Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеКаждогоТеста() Экспорт
|
||||
|
||||
// Выполняется после каждого теста
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
Сообщить("Время выполнения теста: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеТестовогоНабора() Экспорт
|
||||
|
||||
// Выполняется после каждого тестового набора для каждого контекста выполнения
|
||||
// Применяется для очистки данных и т.д.
|
||||
Контекст = ЮТест.КонтекстТестовогоНабора();
|
||||
Сообщить("Время выполнения набора: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеВсехТестов() Экспорт
|
||||
|
||||
// Выполняется после выполнения всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза
|
||||
// В этом событии все контексты уже уничтожены
|
||||
Сообщить("Тестирование завершено");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
```
|
||||
|
||||
После запуска тестов модуля в EDT (используя [плагин](https://github.com/bia-technologies/edt-test-runner)) получаем такой отчет:
|
||||
|
||||
![Отчет](images/report.png)
|
||||
|
||||
## Запуск
|
||||
|
||||
### Запуск из EDT
|
||||
|
||||
При разработке в EDT процесс запуска тестов можно упростить, установив [плагин](https://github.com/bia-technologies/edt-test-runner)
|
||||
и настроив конфигурацию запуска, как указано в описании плагина.
|
||||
|
||||
### Запуск вне EDT
|
||||
|
||||
Для запуска тестов без использования EDT необходимо:
|
||||
|
||||
1. Сформировать файл конфигурации запуска [вручную](/docs/run), либо воспользоваться [формой настройки](/docs/yaxunit-ui)
|
||||
2. [Запустить 1С:Предприятие](/docs/run) с параметром `RunUnitTests=ПутьКФайлуКонфигурации.json`.
|
||||
|
||||
## Благодарности
|
||||
|
||||
Приносим благодарность всему [open-source сообществу 1с](https://github.com/topics/1c-enterprise) за идеи и мотивацию.
|
||||
|
||||
Особая благодарность авторам и контрибьютерам проектов
|
||||
|
||||
- [xUnitFor1C](https://github.com/xDrivenDevelopment/xUnitFor1C/graphs/contributors)
|
||||
- [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation/graphs/contributors)
|
||||
- [add](https://github.com/vanessa-opensource/add/graphs/contributors)
|
||||
|
||||
---
|
||||
|
||||
## Лицензия
|
||||
|
||||
Copyright © 2022 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
|
||||
|
||||
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
|
0
documentation/static/.nojekyll
Normal file
BIN
documentation/static/img/logo.png
Normal file
After Width: | Height: | Size: 2.0 KiB |