mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-11-24 08:22:22 +02:00
Переезд на новую документацию
This commit is contained in:
parent
791a030643
commit
70cd633064
40
.github/workflows/deploy-documentation.yml
vendored
Normal file
40
.github/workflows/deploy-documentation.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
# Review gh actions docs if you want to further define triggers, paths, etc
|
||||
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy to GitHub Pages
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
cache: yarn
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
- name: Build website
|
||||
run: yarn build
|
||||
|
||||
# Popular action to deploy to GitHub Pages:
|
||||
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Build output to publish to the `gh-pages` branch:
|
||||
publish_dir: ./build
|
||||
# The following lines assign commit authorship to the official
|
||||
# GH-Actions bot for deploys to `gh-pages` branch:
|
||||
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
|
||||
# The GH actions bot is used by default if you didn't specify the two fields.
|
||||
# You can swap them out with your own user credentials.
|
||||
user_name: github-actions[bot]
|
||||
user_email: 41898282+github-actions[bot]@users.noreply.github.com
|
164
README.md
164
README.md
@ -1,4 +1,4 @@
|
||||
# ![](documentation/static/img/logo.png) YAXUnit. Расширение для запуска тестов
|
||||
# ![Logo](documentation/static/img/logo.png) YAXUnit. Расширение для запуска тестов
|
||||
|
||||
----
|
||||
|
||||
@ -8,171 +8,13 @@
|
||||
[![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/api-topic.md).
|
||||
|
||||
А для того, что бы начать писать тесты необходимо [установить расширение](docs/install.md) в свою 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)) получаем такой отчет:
|
||||
|
||||
![Отчет](docs/images/report.PNG)
|
||||
|
||||
## Запуск
|
||||
|
||||
### Запуск из EDT
|
||||
|
||||
При разработке в EDT процесс запуска тестов можно упростить, установив [плагин](https://github.com/bia-technologies/edt-test-runner)
|
||||
и настроив конфигурацию запуска, как указано в описании плагина.
|
||||
|
||||
### Запуск вне EDT
|
||||
|
||||
Для запуска тестов без использования EDT необходимо:
|
||||
|
||||
1. Сформировать файл конфигурации запуска [вручную](docs/run.md), либо воспользоваться [формой настройки](docs/yaxunit-ui.md)
|
||||
2. [Запустить 1С:Предприятие](docs/run.md) с параметром `RunUnitTests=ПутьКФайлуКонфигурации.json`.
|
||||
[https://bia-technologies.github.io/yaxunit/](https://bia-technologies.github.io/yaxunit/)
|
||||
|
||||
## Благодарности
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user