Skip to content

Commit

Permalink
Merge branch 'release/24.01'
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed Jan 15, 2024
2 parents 1acf940 + 43e68b9 commit 4c5eaa5
Show file tree
Hide file tree
Showing 161 changed files with 4,499 additions and 1,660 deletions.
11 changes: 9 additions & 2 deletions .github/workflows/build-on-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,18 @@ on:

src_artifact_name:
type: string
required: true
required: false
default: designer-src

artifact_name:
type: string
required: true
required: false
default: build-artifacts

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-build
cancel-in-progress: true

jobs:
build:
runs-on: windows-latest
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/export-xml.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ on:
artifact_name:
type: string
required: true

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-export
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
Expand Down
20 changes: 12 additions & 8 deletions .github/workflows/main-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branches: [ develop ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

permissions:
Expand All @@ -29,29 +29,25 @@ jobs:
needs: export_to_designer
with:
v8_version: 8.3.21.1895
src_artifact_name: designer-src
artifact_name: build-artifacts
secrets: inherit

tests_linux_ru:
name: Tests Linux 8.3.21.1895 ru_RU
uses: ./.github/workflows/run-tests-linux.yml
if: github.ref == 'refs/heads/develop'
needs: build_artifacts
with:
v8_version: 8.3.21.1895
artifact_name: build-artifacts
secrets: inherit

tests_linux_en:
name: Tests Linux 8.3.21.1895 en_US
uses: ./.github/workflows/run-tests-linux.yml
if: false
if: github.ref == 'refs/heads/develop'
needs: build_artifacts
with:
v8_version: 8.3.21.1895
artifact_name: build-artifacts
locale: en_US
fail_on_failure: false
secrets: inherit

tests_windows_ru:
Expand All @@ -60,5 +56,13 @@ jobs:
needs: build_artifacts
with:
v8_version: 8.3.21.1895
artifact_name: build-artifacts
locale: ru_RU
secrets: inherit
tests_windows_en:
name: Tests Windows 8.3.21.1895 en_US
uses: ./.github/workflows/run-tests-windows.yml
needs: build_artifacts
with:
v8_version: 8.3.21.1895
locale: en_US
secrets: inherit
13 changes: 10 additions & 3 deletions .github/workflows/run-tests-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ on:

artifact_name:
type: string
required: true
required: false
default: build-artifacts

fail_on_failure:
type: boolean
Expand All @@ -28,7 +29,7 @@ permissions:
id-token: write

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-Linux
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-${{ github.event.number }}-Linux
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -134,7 +135,9 @@ jobs:
"closeAfterTests": true,
"exitCode": "exit-code.txt",
"logging": {
"console": true
"enable": false,
"console": true,
"file": "execute.log"
}
}
Expand All @@ -145,6 +148,10 @@ jobs:
DISPLAY: :99
LANG: "${{ inputs.locale }}.UTF-8"

# - name: view log
# if: always()
# run: cat ./execute.log

- name: view output
if: always()
run: cat ./output.log
Expand Down
19 changes: 13 additions & 6 deletions .github/workflows/run-tests-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ on:

artifact_name:
type: string
required: true
required: false
default: build-artifacts

fail_on_failure:
type: boolean
required: false
default: true

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-Windows
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-${{ github.event.number }}-Windows
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -82,20 +83,26 @@ jobs:
"closeAfterTests": true,
"exitCode": "exit-code.txt",
"logging": {
"enable": false,
"console": true,
"file": "execute.log"
}
}
- uses: bhowell2/[email protected]
id: short_locale
with:
value: ${{ inputs.locale }}
length_from_start: 2
- name: Test
run: |
Start-Process ibsrv.exe -ArgumentList "--data=data"
Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=unit.json" /L ru /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log'
Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=unit.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log'
timeout-minutes: 10

- name: view output
if: always()
run: type execute.log
# - name: view log
# if: always()
# run: type execute.log

- name: view output
if: always()
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@

## Лицензия

Copyright © 2022 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/)
Copyright © 2023 [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)
67 changes: 67 additions & 0 deletions documentation/blog/2024/01/15-engine-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: YaxUnit. Версия 24.01
authors: alkoleft
tags: [releases, yaxunit]
---

[Release 24.01](https://github.com/bia-technologies/edt-test-runner/releases/tag/24.01)

## Новое в версии

### Тестовые данные

* Добавить возможность передать дополнительные свойства и режим загрузки в методы СоздатьЭлемент и СоздатьДокумент [#181](https://github.com/bia-technologies/yaxunit/issues/181) Спасибо [@SeiOkami](https://github.com/SeiOkami)
* Конструктор тестовых данных. Добавить метод перехода с заполнения табличной части на объект [#167](https://github.com/bia-technologies/yaxunit/issues/167)
* Конструктор тестовых данных, добавить метод создания записи, который возвращает сам конструктор. [#243](https://github.com/bia-technologies/yaxunit/issues/243)

### Утверждения

* Новое утверждение `ОжидаетЧто(Объект).ИмеетМетод(ИмяМетода)` [#224](https://github.com/bia-technologies/yaxunit/issues/224)
* Добавить поддержку передачи значения по умолчанию [#207](https://github.com/bia-technologies/yaxunit/issues/207) Спасибо [@stolya](https://github.com/stolya)
* Утверждения. Добавить поддержку проверки форматированных строк [#199](https://github.com/bia-technologies/yaxunit/issues/199)
* Доработать утверждения ИБ для проверки строк неограниченной длины [#187](https://github.com/bia-technologies/yaxunit/issues/187)
* Добавить поддержку предикатов в Утверждения.Содержит И Утверждения.НеСодержит [#179](https://github.com/bia-technologies/yaxunit/issues/179)
* Утверждения для проверки исключений методов выполнять в транзакции [#172](https://github.com/bia-technologies/yaxunit/issues/172)
* Перевод утверждений на использование предикатов [#162](https://github.com/bia-technologies/yaxunit/issues/162)
* Сравнение табличных документов по содержимому [#36](https://github.com/bia-technologies/yaxunit/issues/36)

### Мокирование

* Мокито. Навести порядок с мокированием ссылочных объектов. [#231](https://github.com/bia-technologies/yaxunit/issues/231)
* Настройка мокирования. Сократить настройку мокирования цепочки вызовов одного метода. [#223](https://github.com/bia-technologies/yaxunit/issues/223)


### Прочее

* Поддержка англоязычных конфигураций [#238](https://github.com/bia-technologies/yaxunit/issues/238) Спасибо [@RichardTheLionJokes](https://github.com/RichardTheLionJokes)
* Вынести в ППИ метод получения свойства по по пути [#214](https://github.com/bia-technologies/yaxunit/issues/214)
* Добавить метод получения движений документа [#170](https://github.com/bia-technologies/yaxunit/issues/170)
* Сократить сообщение для сломанных тестов [#169](https://github.com/bia-technologies/yaxunit/issues/169)
* Небольшые правки [#165](https://github.com/bia-technologies/yaxunit/issues/165)
* Метод установки реквизита ссылки [#158](https://github.com/bia-technologies/yaxunit/issues/158)
* Проверка зависших транзакций [#143](https://github.com/bia-technologies/yaxunit/issues/143)

## Исправленные ошибки

### Запуск

* Ошибка при чтении параметров запуска [#241](https://github.com/bia-technologies/yaxunit/issues/241) Спасибо [@1cgh](https://github.com/1cgh)
* Добавить поддержку работу инструмента под не полноправным пользователем [#212](https://github.com/bia-technologies/yaxunit/issues/212) Спасибо [@stolya](https://github.com/stolya)
* Добавить возможность внутри тестов создавать внешнюю обработку по имени [#193](https://github.com/bia-technologies/yaxunit/issues/193) Спасибо [@SeiOkami](https://github.com/SeiOkami)
* Ошибка запуска тестов из файла настроек при запрещенных синхронных вызовах [#188](https://github.com/bia-technologies/yaxunit/issues/188)

### Мокирование

* Не работает мокирование методов обработки, при обучении через менеджер [#217](https://github.com/bia-technologies/yaxunit/issues/217)

### Тестовые данные

* Ошибка генерации случайного отрицательного числа без параметров [#211](https://github.com/bia-technologies/yaxunit/issues/211)

### CI

* Починить тесты движка для английской локали [#160](https://github.com/bia-technologies/yaxunit/issues/160)

### Прочее

* При поломке контекста движка в рамках теста возникает необработаная ошибка [#234](https://github.com/bia-technologies/yaxunit/issues/234)
8 changes: 8 additions & 0 deletions documentation/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ sidebar_position: 1

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

## Окружение

- Разработка ведется с использованием [:Enterprise Development Tools](https://edt.1c.ru/) актуальной релизной версии
- После клонирования репозитория, необходимо подключить `precommit4onec`
- Установить [oscript](https://oscript.io/)
- Установить precommit4onec `opm install precommit4onec`
- Подключить precommit4onec к репозиторию `precommit4onec install -source-dir "exts" /путь/к/склонированному/репозиторию`. Например: путь к склонированному репозиторию '/home/valery/reps/yaxunit', то команда будет `precommit4onec install -source-dir "exts" ~/reps/yaxunit`

## Тестирование

Для прогона тестов используется [доработанная демо-конфигурация](https://github.com/bia-technologies/yaxunit/tree/develop/fixtures/demo-configuration) от фирмы [](https://github.com/1C-Company).
Expand Down
4 changes: 4 additions & 0 deletions documentation/docs/user-api/assertions/assertions-base.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@ tags: [Начало, Утверждения]
### Проверка на соответствие набору условий, предикату

* `СоответствуетПредикату` - проверяет, что объект или его свойство соответствует набору условий
* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям
* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям
* `Содержит` - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям
* `НеСодержит` - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям

### Проверка методов объекта

Expand Down
59 changes: 34 additions & 25 deletions documentation/docs/user-api/predicates.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,29 @@ tags: [Начало, Предикаты, Утверждения, Запросы,

```bsl
Процедура АктуализацияУведомлений() Экспорт
ИмяРегистра = "РегистрСведений.ОповещенияПользователя";
Объект = ТестовыеДанные.Объект();
УсловиеУведомления = ЮТест.Предикат()
.Реквизит("Источник").Равно(Объект)
.Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1)
.Получить();
ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
.НеСодержитЗаписи(УсловиеУведомления);
УведомленияВызовСервера.АктуализацияУведомлений();
ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
.СодержитЗаписи(УсловиеУведомления);
ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления);
ЮТест.ОжидаетЧто(ДанныеУведомления)
.Свойство("Прочитано").ЭтоЛожь()
.Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер);
ИмяРегистра = "РегистрСведений.ОповещенияПользователя";
Объект = ТестовыеДанные.Объект();
УсловиеУведомления = ЮТест.Предикат()
.Реквизит("Источник").Равно(Объект)
.Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1)
.Получить();
ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
.НеСодержитЗаписи(УсловиеУведомления);
УведомленияВызовСервера.АктуализацияУведомлений();
ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
.СодержитЗаписи(УсловиеУведомления);
ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления);
ЮТест.ОжидаетЧто(ДанныеУведомления)
.Свойство("Прочитано").ЭтоЛожь()
.Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер);
КонецПроцедуры
```

Expand All @@ -49,10 +49,19 @@ tags: [Начало, Предикаты, Утверждения, Запросы,
ЮТест.ОжидаетЧто(Коллекция)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2`
ЮТест.ОжидаетЧто(Коллекция)
.Содержит(ЮТест.Предикат()
.Реквизит("Число").Равно(2)); // Тоже самое, что и проверка выше
ЮТест.ОжидаетЧто(Коллекция)
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив
ЮТест.ОжидаетЧто(Коллекция)
.НеСодержит(ЮТест.Предикат()
.Реквизит("Число").Равно(2)); // Проверят, что в коллекции нет элементов с реквизитом `Число`, которое равно `2`
```
* Описания параметров метода при мокировании
Expand Down Expand Up @@ -131,6 +140,6 @@ tags: [Начало, Предикаты, Утверждения, Запросы,

### Особенности реализации

Сам модуль предикатов используется только для формирования утверждений/условий.
Сам модуль предикатов используется только для формирования утверждений/условий.

Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами.
Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами.
Loading

0 comments on commit 4c5eaa5

Please sign in to comment.