diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8cb363c3e..246870877 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ - + -## Описание изменний +## Описание изменений diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 000000000..2fed2c2c1 --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,73 @@ +name: Build release +on: + push: + tags: + - '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-release + cancel-in-progress: true + +permissions: + contents: write + +jobs: + export_to_designer: + name: Export to designer xml + uses: ./.github/workflows/step-export-xml.yml + with: + edt_version: 2023.1.2 + artifact_name: designer-src + engine_only: true + secrets: inherit + + build_artifacts: + runs-on: ubuntu-latest + needs: export_to_designer + + steps: + - name: install 8.3.21.1895 + uses: alkoleft/onec-setup-build-env-action@develop + with: + type: onec + onec_version: 8.3.21.1895 + cache: true + env: + ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} + ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} + timeout-minutes: 10 + + - name: download artifact + uses: actions/download-artifact@v4 + with: + name: designer-src + - name: extract artifacts + run: | + mkdir export + cd export + 7z x ../export.7z -y + + - name: create IB + run: ibcmd infobase create --db-path=file-db + timeout-minutes: 5 + + - name: import yaxunit + run: ibcmd infobase config import --db-path=file-db --extension=YAXUNIT export/yaxunit + timeout-minutes: 5 + + - name: save yaxunit + run: ibcmd infobase config save --db-path=file-db --extension=YAXUNIT YAxUnit-${{ needs.export_to_designer.outputs.yaxunit_version }}.cfe + timeout-minutes: 5 + + - name: Release + uses: softprops/action-gh-release@v2 + if: ${{ success() }} + with: + draft: true + files: YAxUnit-*.cfe + fail_on_unmatched_files: true + generate_release_notes: true + append_body: false + name: Версия ${{ needs.export_to_designer.outputs.yaxunit_version }} + token: ${{ secrets.GITHUB_TOKEN }} + diff --git a/.github/workflows/deploy-documentation.yml b/.github/workflows/deploy-documentation.yml index 8c07ce64f..8e6e0cd45 100644 --- a/.github/workflows/deploy-documentation.yml +++ b/.github/workflows/deploy-documentation.yml @@ -16,7 +16,7 @@ jobs: name: Deploy to GitHub Pages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Download bsl doc run: curl -L https://github.com/alkoleft/bsldoc/releases/download/0.1.0/bsldoc-0.1.0.jar --output ./bsldoc.jar && chmod +7 ./bsldoc.jar - name: Generate API documentation diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index e854bac17..68f74f3e6 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -1,23 +1,26 @@ name: Build and test on: push: - branches: [ feature/**, develop ] + branches: + - feature/** + - develop + pull_request_target: branches: [ develop ] concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-main cancel-in-progress: true permissions: - contents: read + contents: write checks: write id-token: write jobs: export_to_designer: name: Export to designer xml - uses: ./.github/workflows/export-xml.yml + uses: ./.github/workflows/step-export-xml.yml with: edt_version: 2023.1.2 artifact_name: designer-src @@ -25,44 +28,40 @@ jobs: build_artifacts: name: Build artifacts - uses: ./.github/workflows/build-on-windows.yml + uses: ./.github/workflows/step-build-artifacts-windows.yml needs: export_to_designer with: v8_version: 8.3.21.1895 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' + + tests_windows: + strategy: + fail-fast: false + matrix: + v8_version: + - 8.3.21.1895 + locale: + - ru_RU + - en_US + uses: ./.github/workflows/step-run-tests-windows.yml needs: build_artifacts with: - v8_version: 8.3.21.1895 + v8_version: ${{ matrix.v8_version }} + locale: ${{ matrix.locale }} secrets: inherit - - tests_linux_en: - name: Tests Linux 8.3.21.1895 en_US - uses: ./.github/workflows/run-tests-linux.yml - if: github.ref == 'refs/heads/develop' - needs: build_artifacts - with: - v8_version: 8.3.21.1895 - locale: en_US - secrets: inherit - - tests_windows_ru: - name: Tests Windows 8.3.21.1895 ru_RU - uses: ./.github/workflows/run-tests-windows.yml + + tests_linux: + strategy: + fail-fast: false + matrix: + v8_version: + - 8.3.21.1895 + locale: + - ru_RU + - en_US + uses: ./.github/workflows/step-run-tests-linux.yml needs: build_artifacts with: - v8_version: 8.3.21.1895 - locale: ru_RU + v8_version: ${{ matrix.v8_version }} + locale: ${{ matrix.locale }} 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 \ No newline at end of file diff --git a/.github/workflows/sq-pr.yml b/.github/workflows/sq-pr.yml new file mode 100644 index 000000000..82d027c3d --- /dev/null +++ b/.github/workflows/sq-pr.yml @@ -0,0 +1,29 @@ +name: Анализ в SonarQube (pull-request) + +on: + - pull_request + # - pull_request_target Не поддерживается 1CDevFlow/sonar-quality-gate и sonarqube-community-branch-plugin, необходимо доработать action +jobs: + SonarScanner: + runs-on: ubuntu-latest + steps: + - name: Checkout PR + uses: actions/checkout@v4 + with: + # Для поддержки pull_request и pull_request_target + # https://github.com/android-password-store/Android-Password-Store/pull/1247 + ref: refs/pull/${{ github.event.number }}/merge + fetch-depth: 0 + + # https://docs.sonarqube.org/latest/analysis/pull-request/ + - name: Analyze (pull-request) + uses: 1CDevFlow/sonar-quality-gate@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GIT_URL: "https://api.github.com" + GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_URL: https://sonar.openbsl.ru + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + GITHUB_REPOSITORY: bia-technologies/yaxunit + CI_MERGE_REQUEST_IID: ${{ github.event.number }} + DEBUG: ${{ runner.debug }} diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 4fe09291b..56769139d 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -1,6 +1,8 @@ name: sq-analyze -on: [push, pull_request] +on: + - push + # - pull_request jobs: SonarScanner: @@ -8,7 +10,7 @@ jobs: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: ${{ github.event.workflow_run.head_repository.full_name }} ref: ${{ github.event.workflow_run.head_branch }} @@ -31,7 +33,7 @@ jobs: id: extract_version - name: Setup sonarqube - uses: warchant/setup-sonar-scanner@v3 + uses: warchant/setup-sonar-scanner@v8 # Анализ проекта в SonarQube (ветка) - name: Анализ в SonarQube (branch) diff --git a/.github/workflows/build-on-windows.yml b/.github/workflows/step-build-artifacts-windows.yml similarity index 96% rename from .github/workflows/build-on-windows.yml rename to .github/workflows/step-build-artifacts-windows.yml index ccbc259a4..07fbe7f10 100644 --- a/.github/workflows/build-on-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -40,7 +40,7 @@ jobs: timeout-minutes: 10 - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.src_artifact_name }} @@ -75,7 +75,7 @@ jobs: timeout-minutes: 5 - name: upload-artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ inputs.artifact_name }} path: binary\*.* diff --git a/.github/workflows/export-xml.yml b/.github/workflows/step-export-xml.yml similarity index 56% rename from .github/workflows/export-xml.yml rename to .github/workflows/step-export-xml.yml index 1f118ae5c..def41e8ef 100644 --- a/.github/workflows/export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -9,19 +9,44 @@ on: artifact_name: type: string required: true + + engine_only: + type: boolean + required: false + default: false + outputs: + yaxunit_version: + value: ${{ jobs.export.outputs.yaxunit_version }} concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-export cancel-in-progress: true jobs: - build: + export: runs-on: ubuntu-latest + outputs: + yaxunit_version: ${{ steps.extract_version.outputs.version }} steps: - - uses: actions/checkout@v3 - + - name: Checkout PR + if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' + uses: actions/checkout@v4 + with: + # Для поддержки pull_request и pull_request_target + # https://github.com/android-password-store/Android-Password-Store/pull/1247 + ref: refs/pull/${{ github.event.number }}/merge + + - name: Checkout ${{github.ref}} + if: github.event_name == 'push' + uses: actions/checkout@v4 + + - name: Extract version + shell: bash + run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT + id: extract_version + - name: install EDT - uses: IT-Medved/onec-setup-build-env-action@develop + uses: alkoleft/onec-setup-build-env-action@develop with: type: edt edt_version: ${{ inputs.edt_version }} @@ -29,9 +54,10 @@ jobs: env: ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} - timeout-minutes: 10 + timeout-minutes: 30 - name: convert configuration src + if: ${{ !inputs.engine_only }} uses: alkoleft/onec-edtcli-command-action@main with: export: true @@ -50,6 +76,7 @@ jobs: timeout-minutes: 10 - name: convert tests src + if: ${{ !inputs.engine_only }} uses: alkoleft/onec-edtcli-command-action@main with: export: true @@ -63,7 +90,7 @@ jobs: 7za a -t7z ../export.7z ./ - name: upload-artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ inputs.artifact_name }} path: export.7z diff --git a/.github/workflows/step-publish-artifacts.yml b/.github/workflows/step-publish-artifacts.yml new file mode 100644 index 000000000..23eb6bf22 --- /dev/null +++ b/.github/workflows/step-publish-artifacts.yml @@ -0,0 +1,35 @@ +name: Run tests on Linux + +on: + workflow_call: + inputs: + artifact_name: + type: string + required: false + default: build-artifacts + +permissions: + contents: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + publish: + runs-on: ubuntu-latest + steps: + + - name: download artifact + uses: actions/download-artifact@v4 + with: + name: ${{ inputs.artifact_name }} + path: binary + - name: Release + uses: softprops/action-gh-release@v2 + with: + draft: true + files: binary/YAxUnit.cfe + generate_release_notes: true + append_body: false + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/run-tests-linux.yml b/.github/workflows/step-run-tests-linux.yml similarity index 94% rename from .github/workflows/run-tests-linux.yml rename to .github/workflows/step-run-tests-linux.yml index b6cf2e60c..4db81fda2 100644 --- a/.github/workflows/run-tests-linux.yml +++ b/.github/workflows/step-run-tests-linux.yml @@ -38,7 +38,7 @@ jobs: steps: - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.artifact_name }} path: binary @@ -51,7 +51,7 @@ jobs: mkdir reports -p - name: install platform - uses: IT-Medved/onec-setup-build-env-action@develop + uses: alkoleft/onec-setup-build-env-action@develop with: type: onec onec_version: ${{ inputs.v8_version }} @@ -135,9 +135,7 @@ jobs: "closeAfterTests": true, "exitCode": "exit-code.txt", "logging": { - "enable": false, - "console": true, - "file": "execute.log" + "console": true } } @@ -157,14 +155,14 @@ jobs: run: cat ./output.log - name: upload-artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: Tests report. Linux ${{ inputs.v8_version }} ${{ inputs.locale }} path: reports/*.* - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 + uses: 1CDevFlow/action-onec-junit-report@main if: always() with: job_name: Tests Linux ${{ inputs.v8_version }} ${{ inputs.locale }} diff --git a/.github/workflows/run-tests-windows.yml b/.github/workflows/step-run-tests-windows.yml similarity index 90% rename from .github/workflows/run-tests-windows.yml rename to .github/workflows/step-run-tests-windows.yml index f98bda059..6ec43a942 100644 --- a/.github/workflows/run-tests-windows.yml +++ b/.github/workflows/step-run-tests-windows.yml @@ -37,7 +37,7 @@ jobs: steps: - name: download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.artifact_name }} path: binary @@ -83,17 +83,15 @@ jobs: "closeAfterTests": true, "exitCode": "exit-code.txt", "logging": { - "enable": false, - "console": true, - "file": "execute.log" + "console": true } } - - uses: bhowell2/github-substring-action@1.0.2 + - name: set short_locale id: short_locale - with: - value: ${{ inputs.locale }} - length_from_start: 2 + run: | + Write-Output "substring=$('${{ inputs.locale }}'.Substring(0, 2))" >> $Env:GITHUB_OUTPUT + - name: Test run: | Start-Process ibsrv.exe -ArgumentList "--data=data" @@ -109,13 +107,13 @@ jobs: run: type 1cv8c-output.log - name: upload-artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Tests report. Windows ${{ inputs.v8_version }} ${{ inputs.locale }} path: reports/ - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 + uses: 1CDevFlow/action-onec-junit-report@main with: job_name: Tests Windows ${{ inputs.v8_version }} ${{ inputs.locale }} check_name: Tests report. Windows ${{ inputs.v8_version }} ${{ inputs.locale }} diff --git a/.vscode/settings.json b/.vscode/settings.json index 2ec88eb2c..e5a976106 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,16 @@ { "cSpell.words": [ + "абвгдеёжзийклмнопрстуфхцчшщъыьэюя", + "алиас", "валидировать", + "гггг", + "гендером", + "Дозаполнить", "замокированного", + "Инкрементирует", + "КоллекцияjUnit", "логирвания", + "МассивjUnit", "Ментейнер", "моками", "моки", @@ -17,20 +25,41 @@ "Мокито", "моков", "Неопределено", + "ОКАТО", "Переиспользование", + "Повт", "помогаторы", "пресетов", "Регистронезависимое", + "реквеста", "релизный", + "Сериализатор", "сериализацию", + "сериализуемыми", "сериализуемых", + "СтрокуjUnit", + "СHTTP", + "ТИПЗНАЧЕНИЯ", "фейкового", "фейковых", "фича", + "Человекочитаемое", "юнит", + "ЮТHTTP", + "Addin", "autonumber", "bellerage", + "BSLLS", + "classname", + "consructor", + "dumpjson", + "Functest", + "jUnit", "mindmap", + "tchk", + "testcase", + "testsuite", + "testsuites", "Wiremock", "XDTO", "yaxunit" diff --git a/documentation/blog/2024/05/07-engine-release.md b/documentation/blog/2024/05/07-engine-release.md index cd3d1f632..164e9bc53 100644 --- a/documentation/blog/2024/05/07-engine-release.md +++ b/documentation/blog/2024/05/07-engine-release.md @@ -24,7 +24,7 @@ tags: [releases, yaxunit] ### Прочее * Рефакторинг механизма событий [#315](https://github.com/bia-technologies/yaxunit/issues/315) - Добавлена возможность создавать обработчики событий за пределами расширения движка, подробнее в [документации](docs/features/events) + Добавлена возможность создавать обработчики событий за пределами расширения движка, подробнее в [документации](/docs/features/events) * Добавлен шаблон PR ## Исправленные ошибки diff --git a/documentation/docs/features/assertions/assertions-base.md b/documentation/docs/features/assertions/assertions-base.md index 9e4cd80a2..294266883 100644 --- a/documentation/docs/features/assertions/assertions-base.md +++ b/documentation/docs/features/assertions/assertions-base.md @@ -532,20 +532,37 @@ API для проверки, выбрасываемых методом пров ```bsl ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .Метод("МетодБезИсключение", ЮТМетоды.МассивПараметров("Исключение")) .НеВыбрасываетИсключение() .НеВыбрасываетИсключение("Ожидаемое исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) + .Метод("МетодИсключение", ЮТМетоды.МассивПараметров("Исключение", 2)) .ВыбрасываетИсключение("Слишком много фактических параметров"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) - .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение")) + .Метод("МетодИсключение", ЮТМетоды.МассивПараметров("Исключение")) .ВыбрасываетИсключение("Исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодБезИсключение") .ВыбрасываетИсключение("Недостаточно фактических параметров"); ``` +### Проверка вызова метода используя параметры по умолчанию + +Предположим, имеется метод + +```bsl +Функция МетодСоЗначениеПоУмолчанию(Значение = 999, ОбязательноеЗначение) Экспорт +``` + +Для проверки метода с использованием параметра по умолчанию, просто пропустите этот параметр при формировании массива параметров. + +```bsl +ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодСоЗначениеПоУмолчанию", ЮТМетоды.МассивПараметров(, "Исключение")) + .НеВыбрасываетИсключение() +; +``` + ### Проверка соответствия предикату ```bsl diff --git a/documentation/docs/features/events.md b/documentation/docs/features/events.md index 5845eda2c..e81c8b366 100644 --- a/documentation/docs/features/events.md +++ b/documentation/docs/features/events.md @@ -155,12 +155,14 @@ YAxUnit также использует события для работы вн ### ЗагрузкаТестов -#### ПередЧтениеСценариев() +#### ПередЧтениеСценариев(Отказ) `&НаКлиенте` Вызывается перед загрузкой тестов. +В событии можно отменить загрузку тестов установив параметр `Отказ = Истина`. + #### ПередЧтениемСценариевМодуля(МетаданныеМодуля) `&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. @@ -196,14 +198,24 @@ YAxUnit также использует события для работы вн Например, из одного клиент-серверного теста формируется 2 исполняемых теста (для сервера и для клиента) +#### ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ) + +`&НаКлиенте` + +Вызывается при поиске тестовых модулей. + +Позволяет отфильтровать "лишние" тестовые модули по своим правилам, если модуль не нужно грузить, просто установите параметр `Отказ = Истина` + ### ИсполнениеТестов -#### ПередВыполнениемТестов(ИсполняемыеМодули) +#### ПередВыполнениемТестов(ИсполняемыеМодули, Отказ) `&НаКлиенте` Перед запуском всех тестов. +В событии можно отменить запуск всех тестов установив параметр `Отказ = Истина`. + #### ПередВсемиТестамиМодуля(ОписаниеСобытия) `&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. diff --git a/documentation/docs/getting-started/run/configuration.md b/documentation/docs/getting-started/run/configuration.md index 5be0241eb..aad806238 100644 --- a/documentation/docs/getting-started/run/configuration.md +++ b/documentation/docs/getting-started/run/configuration.md @@ -21,11 +21,10 @@ |---------------|---------|-----------------------|------------------------------------------------------------------------------| | `extensions` | `Array` | `["tests"]` | Список имен расширений, из которых грузятся тесты | | `modules` | `Array` | `Null` | Список имен модулей, из которых грузятся тесты | -| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста]`) | -| `suites` | `Array` | `Null` | **Не реализованно.** Список имен тестовых наборов, которые будут запускаться | -| `tags` | `Array` | `Null` | **Не реализованно.** Список тегов, которые будут запускаться | +| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста{.Имя контекста}]`) | +| `suites` | `Array` | `Null` | Список имен тестовых наборов, которые будут запускаться | +| `tags` | `Array` | `Null` | Список тегов, которые будут запускаться | | `contexts` | `Array` | `Null` | Список имен контекстов исполнения, в которых будут запускаться тесты | -| `paths` | `Array` | `Null` | **Не реализованно.** Список полных путей к исполняемым тестам | ## Параметры логирования @@ -34,7 +33,7 @@ | `file` | `String` | `""` | Путь к файлу лога | | `enable` | `Boolean` | `Null` | Использование логирвания.
Если не указан, зависит от параметра `file` и `console`, если установлены - вкл, если нет - выкл | | `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) | -| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` | +| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"warning"`, `"error"` | Примеры: diff --git a/exts/yaxunit/.settings/Default.cset b/exts/yaxunit/.settings/Default.cset index e17003ccb..c1197d704 100644 --- a/exts/yaxunit/.settings/Default.cset +++ b/exts/yaxunit/.settings/Default.cset @@ -1,8 +1,4 @@ { "version": 1, - "settings": { - "common-module-type": { - "enabled": false - } - } + "settings": {} } \ No newline at end of file diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index 1fef6412b..356c5103a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -169,6 +169,7 @@ КонецФункции // Формирует массив параметров. Применяется при обучении (настройке) мокито. +// Если параметр пропущен, то будет использовать маска см. ЛюбойПараметр // // Параметры: // Параметр1 - Произвольный @@ -187,6 +188,7 @@ //@skip-check method-too-many-params // BSLLS:NumberOfOptionalParams-off // BSLLS:NumberOfParams-off +// BSLLS:DuplicateStringLiteral-off Функция МассивПараметров(Параметр1 = "_!%*", Параметр2 = "_!%*", Параметр3 = "_!%*", @@ -198,23 +200,24 @@ Параметр9 = "_!%*", Параметр10 = "_!%*") Экспорт - Возврат ЮТКоллекции.ЗначениеВМассиве(Параметр1, - Параметр2, - Параметр3, - Параметр4, - Параметр5, - Параметр6, - Параметр7, - Параметр8, - Параметр9, - Параметр10); + Возврат ЮТОбщийСлужебный.ЗначениеВМассивеПоУмолчанию(ЛюбойПараметр(), + Параметр1, + Параметр2, + Параметр3, + Параметр4, + Параметр5, + Параметр6, + Параметр7, + Параметр8, + Параметр9, + Параметр10); КонецФункции - +// BSLLS:DuplicateStringLiteral-on // BSLLS:NumberOfParams-on // BSLLS:NumberOfOptionalParams-on -// Возврщает идентификатор значения входного параметра по умолчанию. +// Возвращает идентификатор значения входного параметра по умолчанию. // // Возвращаемое значение: // Строка @@ -228,7 +231,7 @@ // Функция ПараметрПоУмолчанию() Экспорт - Возврат "<[ЗначениеВходногоПараметраПоУмолчанию]>"; + Возврат ЮТМетоды.ПараметрПоУмолчанию(); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" index 6a8f1c98e..e84bf8ab0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" @@ -37,7 +37,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция КоличествоВызовов(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Экспорт - СпозиционироватьсяНаМетоде(ИмяМетода, ПараметрыВызова); + ПозиционированиеНаМетоде(ИмяМетода, ПараметрыВызова); Возврат МокитоПроверки; @@ -53,7 +53,7 @@ // Массив из см. МокитоСлужебный.СтруктураВызоваМетода - Вызовы метода Функция Вызовы(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Экспорт - СпозиционироватьсяНаМетоде(ИмяМетода, ПараметрыВызова); + ПозиционированиеНаМетоде(ИмяМетода, ПараметрыВызова); Возврат СтатистикаВызовов(); @@ -249,7 +249,7 @@ КонецФункции -Процедура СпозиционироватьсяНаМетоде(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) +Процедура ПозиционированиеНаМетоде(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Параметры = ПараметрыПроверки(); diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 142426c91..4b30e7ced 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -51,6 +51,12 @@ КонецФункции +Процедура СброситьПараметры() Экспорт + + ИнициализироватьНастройки(); + +КонецПроцедуры + #Область СтруктурыДанных Функция РежимыРаботы() Экспорт @@ -227,6 +233,42 @@ КонецФункции +Функция УсловиеИзПараметров(Параметры) Экспорт + + Если Параметры = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Условия = Новый Массив; + + ТипыУсловий = ТипыУсловийПараметров(); + + Для Каждого Параметр Из Параметры Цикл + + Если ЭтоМаскаПарамера(Параметр) Тогда + + Условия.Добавить(Параметр); + + ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Параметр) Тогда + + Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90); + Маска.Вставить("Предикат", ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(Параметр)); + Условия.Добавить(Маска); + + Иначе + + Маска = ОписаниеМаскиПараметра(ТипыУсловий.Значение, 100); + Маска.Вставить("Значение", Параметр); + Условия.Добавить(Маска); + + КонецЕсли; + + КонецЦикла; + + Возврат Условия; + +КонецФункции + #КонецОбласти #Область Перехват @@ -529,7 +571,7 @@ #Область Настройки -Процедура ИнициализироватьНастройки() Экспорт +Процедура ИнициализироватьНастройки() ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина); @@ -566,18 +608,12 @@ КонецФункции -Процедура ОчиститьНастройки() Экспорт +Процедура ОчиститьНастройки() ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено); КонецПроцедуры -Процедура СброситьПараметры() Экспорт - - ИнициализироватьНастройки(); - -КонецПроцедуры - Функция КлючНастроек() Возврат "Mockito"; @@ -595,42 +631,6 @@ #КонецОбласти -Функция УсловиеИзПараметров(Параметры) Экспорт - - Если Параметры = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - Условия = Новый Массив; - - ТипыУсловий = ТипыУсловийПараметров(); - - Для Каждого Параметр Из Параметры Цикл - - Если ЭтоМаскаПарамера(Параметр) Тогда - - Условия.Добавить(Параметр); - - ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Параметр) Тогда - - Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90); - Маска.Вставить("Предикат", ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(Параметр)); - Условия.Добавить(Маска); - - Иначе - - Маска = ОписаниеМаскиПараметра(ТипыУсловий.Значение, 100); - Маска.Вставить("Значение", Параметр); - Условия.Добавить(Маска); - - КонецЕсли; - - КонецЦикла; - - Возврат Условия; - -КонецФункции - #Область Статистика // Зарегистрировать вызов метода. diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 2bbf24e9d..77f682dbc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,7 +38,6 @@ ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1; Обработчик = ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика]; - ЮТЛогирование.Отладка("Следующий обработчик исполнителя: " + Обработчик.ИмяПроцедуры); Возврат Обработчик; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 073c7e129..0549d2dfa 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -125,6 +125,10 @@ #Область Контексты +// Обработчик события "ИнициализацияКонтекста" +// +// Параметры: +// ДанныеКонтекста - Структура Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт ДанныеКонтекста.Вставить(ИмяКонтекстаДанныеЗависимостей(), Новый Соответствие()); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 4c853644f..7f2e2d8c4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -21,7 +21,7 @@ Функция РазрешитьЗависимость(Знач ОписаниеЗависимости) Экспорт Попытка - Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь); + Результат = ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ОписаниеЗависимости.МетодРеализации, , ОписаниеЗависимости.Параметры, Ложь); Исключение Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); Результат.Ошибка = ИнформацияОбОшибке(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 29da51f9b..9dac1a2f8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -146,7 +146,7 @@ ПараметрыМетода = ЮТКоллекции.СкопироватьМассив(ОписаниеЗависимости.Параметры); ПараметрыМетода.Добавить(Обработчик); - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ИмяМетода, ПараметрыМетода); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ИмяМетода, , ПараметрыМетода); Если Ошибка <> Неопределено Тогда Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); @@ -164,7 +164,7 @@ Если ОписаниеЗависимости.ОбработкаНаСервере Тогда Результат = ЮТЗависимостиСлужебныйВызовСервера.РазрешитьЗависимость(ОписаниеЗависимости); Иначе - Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь); + Результат = ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ОписаниеЗависимости.МетодРеализации, , ОписаниеЗависимости.Параметры, Ложь); КонецЕсли; Исключение diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 94b9e2790..5f94587a6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -69,7 +69,7 @@ КонецФункции -// Возвращяет записи результат запроса +// Возвращает записи результат запроса // // Параметры: // ОписаниеЗапроса - см. ЮТЗапросы.ОписаниеЗапроса diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 77ad127d7..c7eeda147 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,19 +18,38 @@ #Область СлужебныйПрограммныйИнтерфейс -// ПрогонНаборов -// Выполняет тесты наборов модуля. Возвращает результат прогона -// Это обертка для прогона на сервере +// Выполняет тесты наборов модуля. Возвращает результат прогона +// Это обертка для прогона на сервере +// // Параметры: -// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +// ИдентификаторыТестовыхНаборов - Массив из Строка - Идентификаторы тестовых наборов, см. ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов +// ИдентификаторТестовогоМодуля - Строка - Идентификатор тестового модуля, см. ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов // // Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт +// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов +Функция ВыполнитьГруппуНаборовТестов(Знач ИдентификаторыТестовыхНаборов, Знач ИдентификаторТестовогоМодуля) Экспорт + + Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов(); + + ТестовыйМодуль = Хранилище[ИдентификаторТестовогоМодуля]; + Наборы = Новый Массив(); + + Для Каждого Идентификатор Из ИдентификаторыТестовыхНаборов Цикл + Наборы.Добавить(Хранилище[Идентификатор]); + КонецЦикла; Возврат ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); КонецФункции +// Сохранить информацию о тестовых сценариях. +// +// Параметры: +// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +Процедура СохранитьИнформациюОТестовыхСценариях(Знач ТестовыеМодули) Экспорт + + ЮТИсполнительСлужебныйСервер.СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули); + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index fe2c9c409..f6ca10c5f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -27,7 +27,8 @@ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикАнализПараметровЗапуска"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПодключитьКомпоненты"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); - ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьЗарегистрированныеТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСформироватьИсполняемыеТесты"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет"); @@ -44,7 +45,8 @@ ПараметрыИсполнения.ПараметрыЗапуска = ПараметрыЗапуска; ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); - ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьЗарегистрированныеТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСформироватьИсполняемыеТесты"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения); @@ -53,6 +55,33 @@ КонецПроцедуры +Процедура ЗагрузитьЗарегистрированныеТесты(ПараметрыЗапуска, ОбработчикЗавершения) Экспорт + + ПараметрыИсполнения = ПараметрыИсполнения(); + ПараметрыИсполнения.ПараметрыЗапуска = ПараметрыЗапуска; + + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьЗарегистрированныеТесты"); + ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения); + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + +Процедура ЗагрузитьИсполняемыеТесты(ПараметрыЗапуска, ОбработчикЗавершения) Экспорт + + ПараметрыИсполнения = ПараметрыИсполнения(); + ПараметрыИсполнения.ПараметрыЗапуска = ПараметрыЗапуска; + + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьЗарегистрированныеТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСформироватьИсполняемыеТесты"); + ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения); + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + Функция ПараметрыИсполнения() Экспорт Параметры = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки(); @@ -75,6 +104,9 @@ СерверныеНаборы = Новый Массив(); ПропущенныеНаборы = Новый Массив(); + ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); + ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); + Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл Если НЕ Набор.Выполнять Тогда @@ -87,22 +119,21 @@ Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда КлиентскиеНаборы.Добавить(Набор); ИначеЕсли РежимИсполнения = КонтекстыИсполнения.Сервер Тогда - СерверныеНаборы.Добавить(Набор); + ИдентификаторТестовогоНабора = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ТестовыйМодуль, Набор); + СерверныеНаборы.Добавить(ИдентификаторТестовогоНабора); Иначе ПропущенныеНаборы.Добавить(Набор); КонецЕсли; КонецЦикла; - ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); - ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); - Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); КонецЕсли; Если ЗначениеЗаполнено(СерверныеНаборы) Тогда - Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный); + ИдентификаторТестовогоМодуля = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ТестовыйМодуль); + Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ИдентификаторТестовогоМодуля); ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); ЮТКоллекции.ДополнитьМассив(Результаты, Результат); КонецЕсли; @@ -121,12 +152,8 @@ Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт - ЮТКонтекстСлужебный.ИнициализироватьКонтекст(); - ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().Инициализация); - - ЮТКонтекстСлужебный.СохранитьПараметрыЗапуска(ПараметрыЗапуска); - ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings); - + ЮТЛогирование.Информация("Инициализация"); + ЮТКонтекстСлужебный.ИнициализироватьКонтекст(ПараметрыЗапуска); ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска); // Повторно сохраним для передачи на сервер @@ -148,6 +175,7 @@ Процедура ОбработчикЗагрузитьПараметры(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Загрузка параметров запуска"); Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик); @@ -155,6 +183,7 @@ Процедура ОбработчикАнализПараметровЗапуска(ПараметрыЗапуска, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Анализ параметров запуска"); ДополнительныеПараметры.ПараметрыЗапуска = ПараметрыЗапуска; Если НЕ ПараметрыЗапуска.ВыполнятьМодульноеТестирование Тогда @@ -167,20 +196,34 @@ Процедура ОбработчикИнициализация(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Инициализация"); ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска); ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры -Процедура ОбработчикЗагрузитьТесты(_, ДополнительныеПараметры) Экспорт +Процедура ОбработчикЗагрузитьЗарегистрированныеТесты(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Загрузка тестовых сценариев"); ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов); - ЮТСобытияСлужебный.ПередЧтениеСценариев(); - ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); - ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули); + Отказ = Ложь; + ЮТСобытияСлужебный.ПередЧтениеСценариев(Отказ); - ИсполняемыеТестовыеМодули = Новый Массив(); + Если Отказ Тогда + ТестовыеМодули = Новый Массив; + Иначе + ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); + ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули); + КонецЕсли; + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ТестовыеМодули); + +КонецПроцедуры + +Процедура ОбработчикСформироватьИсполняемыеТесты(ТестовыеМодули, ДополнительныеПараметры) Экспорт + + ИсполняемыеТестовыеМодули = Новый Массив; Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль); @@ -188,14 +231,15 @@ КонецЦикла; ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули); - ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули; + ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули); КонецПроцедуры Процедура ОбработчикРазрешитьЗависимости(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Разрешение зависимостей"); ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().РазрешениеЗависимостей); Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); @@ -205,19 +249,26 @@ Процедура ОбработчикВыполнитьТестирование(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Выполнение тестовых сценариев"); ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ПрогонТестов); - ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули); + ЮТИсполнительСлужебныйВызовСервера.СохранитьИнформациюОТестовыхСценариях(ДополнительныеПараметры.ИсполняемыеТестовыеМодули); РезультатыТестирования = Новый Массив(); + Отказ = Ложь; + ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули, Отказ); - Для Каждого ТестовыйМодуль Из ДополнительныеПараметры.ИсполняемыеТестовыеМодули Цикл + Если НЕ Отказ Тогда + + Для Каждого ТестовыйМодуль Из ДополнительныеПараметры.ИсполняемыеТестовыеМодули Цикл + + РезультатыПрогонаМодуля = ВыполнитьТестыМодуля(ТестовыйМодуль); + РезультатыТестирования.Добавить(РезультатыПрогонаМодуля); + + КонецЦикла; - РезультатыПрогонаМодуля = ВыполнитьТестыМодуля(ТестовыйМодуль); - РезультатыТестирования.Добавить(РезультатыПрогонаМодуля); + ЮТСобытияСлужебный.ПослеВыполненияТестов(РезультатыТестирования); - КонецЦикла; - - ЮТСобытияСлужебный.ПослеВыполненияТестов(РезультатыТестирования); + КонецЕсли; ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования); @@ -228,6 +279,7 @@ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ФормированиеОтчета); Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда + ЮТЛогирование.Информация("Формирование отчета о тестировании"); Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); Иначе @@ -245,6 +297,7 @@ Процедура ОбработчикЗавершить(_, ДополнительныеПараметры) Экспорт + ЮТЛогирование.Информация("Завершение работы YAxUnit"); Параметры = ДополнительныеПараметры.ПараметрыЗапуска; ЮТКонтекстСлужебный.УдалитьКонтекст(); @@ -259,6 +312,7 @@ Процедура ОбработчикПодключитьКомпоненты(_, ДополнительныеПараметры) Экспорт Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда + ЮТЛогирование.Информация("Подключение внешних компонент"); Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); ЮТКомпонентыСлужебныйКлиент.ТихаяУстановкаКомпонент(Обработчик); Иначе @@ -269,16 +323,6 @@ #КонецОбласти -#Область ОбработчикиСобытий - -Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт - - ЮТКонтекстСлужебный.УстановитьКонтекстИсполнения(ЮТФабрикаСлужебный.НовыйКонтекстИсполнения()); - -КонецПроцедуры - -#КонецОбласти - Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода) Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения, "ОбработчикОшибки", ЭтотОбъект); @@ -291,7 +335,7 @@ ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль); КонтекстыПриложения = ЮТФабрикаСлужебный.КонтекстыПриложения(); - КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля); + КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.Метаданные); КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); ИсполняемыйТестовыйМодуль.НаборыТестов = ИсполняемыеНаборыМодуля(ТестовыйМодуль); @@ -340,7 +384,7 @@ Для Каждого Контекст Из Тест.КонтекстВызова Цикл Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда - ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль); + ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор); ИсполняемыйНабор.Режим = Контекст; НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор); Иначе @@ -388,7 +432,7 @@ КонецПроцедуры Функция ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка) - Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.МетаданныеМодуля); + Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.Метаданные); Тест = ЮТФабрикаСлужебный.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты); Тест.Вставить("Ошибки", Новый Массив); Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка)); @@ -418,6 +462,7 @@ Возврат; КонецЕсли; + ЮТЛогирование.Информация("Сохранение кода возврата в файл"); Для Каждого Модуль Из РезультатыТестирования Цикл Для Каждого Набор Из Модуль.НаборыТестов Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 9c619b516..6baee4f3d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -60,6 +60,48 @@ КонецФункции +// Возвращает идентификатор тестового модуля. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// +// Возвращаемое значение: +// Строка +Функция ИдентификаторТестовогоМодуля(ТестовыйМодуль) Экспорт + + Возврат ТестовыйМодуль.Метаданные.Имя; + +КонецФункции + +// Возвращает идентификатор тестового набора. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыйНабор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// +// Возвращаемое значение: +// Строка - Идентификатор тестового набора +Функция ИдентификаторТестовогоНабора(ТестовыйМодуль, ТестовыйНабор) Экспорт + + Возврат СтрШаблон("%1.%2.%3", ТестовыйМодуль.Метаданные.Имя, ТестовыйНабор.Имя, ТестовыйНабор.Режим); + +КонецФункции + +// Возврашает мдентификатор теста. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыйНабор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// +// Возвращаемое значение: +// Строка - Идентификатор теста +Функция ИдентификаторТеста(ТестовыйМодуль, ТестовыйНабор, Тест) Экспорт + + Возврат СтрШаблон("%1.%2.%3.%4.%5", ТестовыйМодуль.Метаданные.Имя, ТестовыйНабор.Имя, ТестовыйНабор.Режим, Тест.Имя, Тест.НомерВНаборе); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -101,7 +143,7 @@ Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции) - ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест); + ЮТКонтекстИсполненияСлужебныйКлиентСервер.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест); #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции(); Если ВТранзакции Тогда @@ -115,17 +157,31 @@ Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции) - Если ЮТКонтекстСлужебный.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст - ОбновитьПовторноИспользуемыеЗначения(); - ОтменитьТранзакциюТеста(Тест, ВТранзакции); + Если КонтекстСломан(Тест, ВТранзакции) Тогда ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); Иначе ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); - ОтменитьТранзакциюТеста(Тест, ВТранзакции); + Если НЕ КонтекстСломан(Тест, ВТранзакции) Тогда + ОтменитьТранзакциюТеста(Тест, ВТранзакции); + КонецЕсли; КонецЕсли; КонецПроцедуры +Функция КонтекстСломан(Объект, ВТранзакции) + + КонтекстСломан = ЮТКонтекстСлужебный.ДанныеКонтекста() = Неопределено; + + Если КонтекстСломан Тогда + ОбновитьПовторноИспользуемыеЗначения(); + ОтменитьТранзакциюТеста(Объект, ВТранзакции); + ЮТЛогирование.Предостережение("Обнаружена поломка глобального контекста движка. Выполнена отмена транзакции и восстановление контекста"); + КонецЕсли; + + Возврат КонтекстСломан; + +КонецФункции + Процедура ОтменитьТранзакциюТеста(Тест, ВТранзакции) #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда @@ -160,7 +216,7 @@ СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста(); Тест.Статус = СтатусыИсполненияТеста.Исполнение; - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(Тест.ПолноеИмяМетода, , Тест.Параметры); Если Ошибка <> Неопределено Тогда ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..72e424900 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,70 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция СерверноеХранилищеТестов() Экспорт + + АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаХранилище()); + Возврат ПолучитьИзВременногоХранилища(АдресХранилища); + +КонецФункции + +Процедура СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули) Экспорт + + Хранилище = Новый Соответствие(); + + Для Каждого Модуль Из ТестовыеМодули Цикл + + Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(Модуль); + Хранилище.Вставить(Идентификатор, Модуль); + + Для Каждого Набор Из Модуль.НаборыТестов Цикл + + Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(Модуль, Набор); + Хранилище.Вставить(Идентификатор, Набор); + + Для Каждого Тест Из Набор.Тесты Цикл + + Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(Модуль, Набор, Тест); + Хранилище.Вставить(Идентификатор, Тест); + + КонецЦикла; + + КонецЦикла; + + Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим + + КонецЦикла; + + АдресХранилища = ПоместитьВоВременноеХранилище(Хранилище, Новый УникальныйИдентификатор()); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаХранилище(), АдресХранилища); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ИмяКонтекстаХранилище() + + Возврат "ХранилищеТестовыхСценариев"; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..e6d52a148 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,9 @@ + + + ЮТИсполнительСлужебныйСервер + + ru + Исполнитель служебный сервер + + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 4bd1afce9..afd0a06e8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -70,6 +70,60 @@ КонецПроцедуры +// Создает новый массив путем объединения входных. +// +// Параметры: +// Коллекция1 - Массив Из Произвольный +// Коллекция2 - Массив Из Произвольный +// Коллекция3 - Массив Из Произвольный +// Коллекция4 - Массив Из Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Результат объединения +Функция ОбъединитьМассивы(Коллекция1, Коллекция2, Коллекция3 = Неопределено, Коллекция4 = Неопределено) Экспорт + + Коллекции = Новый Массив; + Если ЗначениеЗаполнено(Коллекция1) Тогда + Коллекции.Добавить(Коллекция1); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция2) Тогда + Коллекции.Добавить(Коллекция2); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция3) Тогда + Коллекции.Добавить(Коллекция3); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция4) Тогда + Коллекции.Добавить(Коллекция4); + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(Коллекции) Тогда + Возврат Новый Массив; + КонецЕсли; + + Размер = 0; + Для Каждого Коллекция Из Коллекции Цикл + Размер = Размер + Коллекция.Количество(); + КонецЦикла; + + Результат = Новый Массив(Размер); + Позиция = 0; + + Для Каждого Коллекция Из Коллекции Цикл + Размер = Размер + Коллекция.Количество(); + + Для Инд = 0 По Коллекция.ВГраница() Цикл + Результат[Позиция] = Коллекция[Инд]; + Позиция = Позиция + 1; + КонецЦикла; + КонецЦикла; + + Возврат Результат; + +КонецФункции + // Создает копию экземпляра указанного объекта. // Примечание: // Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.). @@ -215,7 +269,7 @@ // // Параметры: // Коллекция - Произвольный - Итерируемая коллекция -// ИмяРеквизита - Строка - Имя реквизата элементов коллекции +// ИмяРеквизита - Строка - Имя реквизита элементов коллекции // // Возвращаемое значение: // Массив из Произвольный @@ -258,7 +312,7 @@ // Создает массив с переданными значениями // // Параметры: -// Значение - Произвольный +// Значение1 - Произвольный // Значение2 - Произвольный // Значение3 - Произвольный // Значение4 - Произвольный @@ -270,64 +324,38 @@ // Значение10 - Произвольный // // Возвращаемое значение: -// Массив из Произвольный +// Массив из Произвольный - Массив переданных значений //@skip-check method-too-many-params -Функция ЗначениеВМассиве(Значение, - Значение2 = "_!%*", - Значение3 = "_!%*", - Значение4 = "_!%*", - Значение5 = "_!%*", - Значение6 = "_!%*", - Значение7 = "_!%*", - Значение8 = "_!%*", - Значение9 = "_!%*", - Значение10 = "_!%*") Экспорт - - Значения = Новый Массив; - - Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда - Возврат Значения; - КонецЕсли; - - Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда - Возврат Значения; - КонецЕсли; - - Возврат Значения; +// BSLLS:NumberOfOptionalParams-off +// BSLLS:NumberOfParams-off +// BSLLS:DuplicateStringLiteral-off +Функция ЗначениеВМассиве(Значение1, + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") Экспорт + + Возврат ЮТОбщийСлужебный.ЗначениеВМассивеПоУмолчанию(Неопределено, + Значение1, + Значение2, + Значение3, + Значение4, + Значение5, + Значение6, + Значение7, + Значение8, + Значение9, + Значение10); КонецФункции +// BSLLS:DuplicateStringLiteral-onsud +// BSLLS:NumberOfOptionalParams-on +// BSLLS:NumberOfParams-on // Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // @@ -391,18 +419,52 @@ КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции +// Создает структуру из массива. +// Ключами будут элементы массива, а значением каждого элемента структуры - параметр `ЗначениеСтруктуры` +// +// Параметры: +// Значения - Массив из Строка +// ЗначениеСтруктуры - Произвольный +// +// Возвращаемое значение: +// Структура +Функция МассивВСтруктуру(Значения, ЗначениеСтруктуры = Неопределено) Экспорт + + Результат = Новый Структура(); + + Если НЕ ЗначениеЗаполнено(Значения) Тогда + Возврат Результат; + КонецЕсли; + + Для Каждого Значение Из Значения Цикл + Результат.Вставить(Значение, ЗначениеСтруктуры); + КонецЦикла; + + Возврат Результат; + +КонецФункции -Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*") +// Возвращает массив с обратной последовательностью элементов +// +// Параметры: +// Значения - Массив Из Произвольный +// +// Возвращаемое значение: +// Массив Из Произвольный - Перевернутый массив +Функция ОбратныйПорядок(Значения) Экспорт - Если Значение <> ФлагОкончания Тогда - Значения.Добавить(Значение); - Возврат Истина; + Если НЕ ЗначениеЗаполнено(Значения) Тогда + Возврат Новый Массив; КонецЕсли; - Возврат Ложь; + ВГраница = Значения.ВГраница(); + Результат = Новый Массив(Значения.Количество()); + + Для Инд = 0 По ВГраница Цикл + Результат[Инд] = Значения[ВГраница - Инд]; + КонецЦикла; + + Возврат Результат; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" index ad39dade4..a1274b11e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" @@ -95,7 +95,7 @@ КонецФункции -// Подключает внещнюю компоненту из макета +// Подключает внешнюю компоненту из макета // // Параметры: // ИмяМакета - Строка - Имя макета, в котором хранится компонента @@ -110,7 +110,13 @@ Возврат ЮТСлужебныйПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты); КонецЕсли; - Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); + Если ЮТСтроки.ВерсияБольше(ЮТОкружение.ВерсияПлатформы(), "8.3.20") Тогда + ТипПодключения = ЮТМетодыСлужебный.ВычислитьБезопасно("ТипПодключенияВнешнейКомпоненты.НеИзолированно"); + //@skip-check many-actual-parameters + Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native, ТипПодключения); + Иначе + Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); + КонецЕсли; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 9856c3620..ddb495291 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -70,47 +70,12 @@ КорневойКаталог = ЮТФайлы.ОбъединитьПути(Результат, "..", "..", ".."); КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT"); - ПараметрыТихойУстановки.РабочийКаталог = КаталогКомпонент; - Информация = Новый СистемнаяИнформация(); - ОперационнаяСистема = Неопределено; - Архитектура = Неопределено; - - Linux = "Linux"; - Windows = "Windows"; - MacOS = "MacOS"; - - //@skip-check bsl-variable-name-invalid - x86 = "i386"; - //@skip-check bsl-variable-name-invalid - x64 = "x86_64"; - - ТипКлиентскойПлатформы = Информация.ТипПлатформы; - - Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда - ОперационнаяСистема = Linux; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда - ОперационнаяСистема = Linux; - Архитектура = x64; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда - ОперационнаяСистема = Windows; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда - ОперационнаяСистема = Windows; - Архитектура = x64; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда - ОперационнаяСистема = MacOS; - Архитектура = x86; - ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда - ОперационнаяСистема = MacOS; - Архитектура = x64; - Иначе - ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы"); - КонецЕсли; - ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема; - ПараметрыТихойУстановки.Архитектура = Архитектура; + ОписаниеПлатформы = ЮТОкружениеСлужебныйКлиентСервер.Платформа(Новый СистемнаяИнформация()); + ПараметрыТихойУстановки.ОперационнаяСистема = ОписаниеПлатформы.ОперационнаяСистема; + ПараметрыТихойУстановки.Архитектура = ОписаниеПлатформы.Архитектура; + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыТихойУстановки); КонецПроцедуры @@ -206,7 +171,7 @@ | | |", ИмяФайла); - ИначеЕсли СтрНайти(ДанныеРеестра, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна + ИначеЕсли СтрНайти(ДанныеРеестра, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрирована Возврат Ложь; Иначе // Добавляем компоненту Запись = СтрШаблон(" ", ИмяФайла); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..68ff2fc46 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,95 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт + + Уровни = ЮТФабрика.УровниИсполнения(); + КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения(); + + КонтекстИсполнения.Модуль = ТестовыйМодуль; + КонтекстИсполнения.Набор = Набор; + КонтекстИсполнения.Тест = Тест; + + Если Тест <> Неопределено Тогда + КонтекстИсполнения.Уровень = Уровни.Тест; + ИначеЕсли Набор <> Неопределено Тогда + КонтекстИсполнения.Уровень = Уровни.НаборТестов; + ИначеЕсли ТестовыйМодуль <> Неопределено Тогда + КонтекстИсполнения.Уровень = Уровни.Модуль; + Иначе + КонтекстИсполнения.Уровень = Неопределено; + КонецЕсли; + +КонецПроцедуры + +// Обработчик события "ИнициализацияКонтекста" +// +// Параметры: +// ДанныеКонтекста - Структура +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + + ДанныеКонтекста.Вставить(ЮТКонтекстСлужебный.ИмяКонтекстаИсполнения(), ЮТФабрикаСлужебный.НовыйКонтекстИсполнения()); + +КонецПроцедуры + +Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт + + УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль); + ЮТКонтекстСлужебный.УстановитьКонтекстМодуля(); + +КонецПроцедуры + +Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт + + УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор); + ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов(); + +КонецПроцедуры + +Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт + +#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда + ПолучитьСообщенияПользователю(Истина); +#КонецЕсли + + // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом + ЮТКонтекстСлужебный.УстановитьКонтекстТеста(); + +КонецПроцедуры + +Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт + + УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор); + +КонецПроцедуры + +Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт + + УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль); + +КонецПроцедуры + +Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт + + УстановитьКонтекстИсполнения(); + +КонецПроцедуры + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..08614cf3c --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,11 @@ + + + ЮТКонтекстИсполненияСлужебныйКлиентСервер + + ru + Контекст исполнения служебный клиент сервер + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index df13a7565..26f4edad3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -18,20 +18,33 @@ #Область СлужебныйПрограммныйИнтерфейс -// ИнициализироватьКонтекст -// Выполняет начальную настройку для работы с хранимым контекстом -Процедура ИнициализироватьКонтекст() Экспорт +// Выполняет начальную настройку для работы с хранимым контекстом +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура ИнициализироватьКонтекст(ПараметрыЗапуска) Экспорт #Если НЕ Клиент Тогда ВызватьИсключение "Метод `ИнициализироватьКонтекст` должен вызываться только с клиента"; #Иначе - ЮТКонтекстСлужебныйКлиент.ИнициализироватьКонтекст(); - ЮТКонтекстСлужебныйВызовСервера.ИнициализироватьКонтекст(); + ЮТКонтекстСлужебныйКлиент.ИнициализироватьКонтекст(ПараметрыЗапуска); + ЮТКонтекстСлужебныйВызовСервера.ИнициализироватьКонтекст(ПараметрыЗапуска); ОбновитьПовторноИспользуемыеЗначения(); #КонецЕсли КонецПроцедуры +// Обработчик события "ИнициализацияКонтекста" +// +// Параметры: +// ДанныеКонтекста - Структура +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + + ДанныеКонтекста.Вставить(ИмяКонтекстаЭтапПрогона(), ЮТФабрика.ЭтапыПрогона().Инициализация); + ДанныеКонтекста.Вставить(ИмяГлобальныеНастройкиВыполнения(), ДанныеКонтекста[ИмяКонтекстаПараметрыЗапуска()].settings); + +КонецПроцедуры + // ДанныеКонтекста // Возвращает хранимые данные контекста. // Существует отдельно контекст сервера, отдельно клиента, эти контексты никак не связаны и никак не синхронизируются @@ -268,9 +281,11 @@ КонецФункции -Функция ОписаниеКонтекста() Экспорт +Функция ОписаниеКонтекста(ПараметрыЗапуска) Экспорт Описание = Новый Структура; + Описание.Вставить(ИмяКонтекстаПараметрыЗапуска(), ПараметрыЗапуска); + Описание.Вставить(ИмяКонтекстаЭтапПрогона(), ЮТФабрика.ЭтапыПрогона().Инициализация); ЮТСобытияСлужебный.ИнициализацияКонтекста(Описание); @@ -308,24 +323,12 @@ КонецПроцедуры -Процедура УстановитьКонтекстИсполнения(Знач ДанныеКонтекста) Экспорт - - УстановитьЗначениеКонтекста(ИмяКонтекстаИсполнения(), ДанныеКонтекста, Истина); - -КонецПроцедуры - Процедура УстановитьГлобальныеНастройкиВыполнения(Знач Настройки) Экспорт УстановитьЗначениеКонтекста(ИмяГлобальныеНастройкиВыполнения(), Настройки, Истина); КонецПроцедуры -Процедура СохранитьПараметрыЗапуска(Знач ПараметрыЗапуска) Экспорт - - УстановитьЗначениеКонтекста(ИмяКонтекстаПараметрыЗапуска(), ПараметрыЗапуска, Истина); - -КонецПроцедуры - Процедура УстановитьТекущийЭтапПрогона(Этап) Экспорт Если НЕ ЮТФабрика.ЭтапыПрогона().Свойство(Этап) Тогда @@ -385,7 +388,7 @@ КонецФункции -Функция ИмяКонтекстаИсполнения() +Функция ИмяКонтекстаИсполнения() Экспорт Возврат "КонтекстИсполнения"; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index a69650916..df2abb17f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,9 +18,9 @@ #Область СлужебныйПрограммныйИнтерфейс -Процедура ИнициализироватьКонтекст() Экспорт +Процедура ИнициализироватьКонтекст(Знач ПараметрыЗапуска) Экспорт - Контекст = ЮТКонтекстСлужебный.ОписаниеКонтекста(); + Контекст = ЮТКонтекстСлужебный.ОписаниеКонтекста(ПараметрыЗапуска); АдресХранилища = ПоместитьВоВременноеХранилище(Контекст, Новый УникальныйИдентификатор()); ХранилищеОбщихНастроек.Сохранить(КлючНастроекКонтекста(), "АдресХранилища", АдресХранилища); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 3ca7c41df..28509c51b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -18,9 +18,9 @@ #Область СлужебныйПрограммныйИнтерфейс -Процедура ИнициализироватьКонтекст() Экспорт +Процедура ИнициализироватьКонтекст(ПараметрыЗапуска) Экспорт - ЮТДанныеКонтекста = ЮТКонтекстСлужебный.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off + ЮТДанныеКонтекста = ЮТКонтекстСлужебный.ОписаниеКонтекста(ПараметрыЗапуска); // BSLLS:UnusedLocalVariable-off КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 51d5db8ff..58d151e8c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -30,11 +30,12 @@ #Иначе КонтекстИсполнения = "Сервер"; #КонецЕсли - Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение); + Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(, Истина), КонтекстИсполнения, УровеньЛога, Сообщение); #Если Клиент Тогда ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); #Иначе - Если Контекст.ФайлЛогаДоступенНаСервере Тогда + // Для серверной базы все равно нужно накапливать сообшения, если включен вывод в консоль + Если ЮТест.Окружение().ФайловаяБаза Или Контекст.ФайлЛогаДоступенНаСервере Тогда ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст)); Иначе Контекст.НакопленныеЗаписи.Добавить(Текст); @@ -111,43 +112,37 @@ ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); - ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки); + Если ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда + ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, + ЗначениеПроверки); + КонецЕсли; ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); Разделитель = "------------------------------------------------------"; ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь); - ЮТЛогирование.Информация("Старт"); - -КонецПроцедуры - -// Обработка события "ПередЧтениеСценариев" -Процедура ПередЧтениеСценариев() Экспорт - - ЮТЛогирование.Информация("Загрузка сценариев"); + ЮТЛогирование.Информация("Инициализация"); КонецПроцедуры -// Перед чтением сценариев модуля. +// Обработка события "ПередЧтениемСценариевМодуля" // // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля -Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля +Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя)); КонецПроцедуры -// Перед чтением сценариев модуля. +// Обработка события "ПослеЧтенияСценариевМодуля" // // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля -Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт +// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя)); + ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", ОписаниеТестовогоМодуля.Метаданные.Имя)); КонецПроцедуры @@ -183,7 +178,7 @@ КонецПроцедуры -// Перед всеми тестами. +// Обработка события "ПередВсемиТестами" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -198,11 +193,12 @@ Контекст.КоличествоВыполненныхТестов = ПрогрессСервер; КонецЕсли; #КонецЕсли - ЮТЛогирование.Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); + МетаданныеМодуля = ОписаниеСобытия.Модуль.Метаданные; + ЮТЛогирование.Информация(СтрШаблон("Запуск тестов модуля `%1.%2`", МетаданныеМодуля.Расширение, МетаданныеМодуля.Имя)); КонецПроцедуры -// Перед тестовым набором. +// Обработка события "ПередТестовымНабором" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -212,7 +208,7 @@ КонецПроцедуры -// Перед каждым тестом. +// Обработка события "ПередКаждымТестом" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -222,7 +218,7 @@ КонецПроцедуры -// Перед каждым тестом. +// Обработка события "ПослеКаждогоТеста" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -238,7 +234,7 @@ КонецПроцедуры -// Перед каждым тестом. +// Обработка события "ПослеТестовогоНабора" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -248,7 +244,7 @@ КонецПроцедуры -// Перед каждым тестом. +// Обработка события "ПослеВсехТестов" // // Параметры: // ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов @@ -262,7 +258,8 @@ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина); #КонецЕсли - ЮТЛогирование.Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя)); + МетаданныеМодуля = ОписаниеСобытия.Модуль.Метаданные; + ЮТЛогирование.Информация(СтрШаблон("Завершен модуль `%1.%2`", МетаданныеМодуля.Расширение, МетаданныеМодуля.Имя)); КонецПроцедуры @@ -327,6 +324,8 @@ ЮТОбщий.ВывестиВКонсоль(Сообщение); КонецЦикла; Исключение + ОшибкаЛогирования = ИнформацияОбОшибке(); + ЮТРегистрацияОшибок.ПредставлениеОшибки("Вывод сообщения в консоль", ОшибкаЛогирования); // Игнорируем ошибку КонецПопытки; #КонецЕсли diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 398aa2e9a..1f1c92365 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -127,7 +127,7 @@ КонецФункции -// Возвращяет набор регистров движений документа +// Возвращает набор регистров движений документа // // Параметры: // Документ - ОбъектМетаданных @@ -170,12 +170,10 @@ // * Ссылочный - Булево // * Регистр - Булево // * ОбработкаОтчет - Булево -// * СтандартныеРеквизиты - Булево -// * Реквизиты - Булево -// * Измерения - Булево -// * Ресурсы - Булево -// * РеквизитыАдресации - Булево +// * НаборыРеквизитов - Массив Из Строка // * ТабличныеЧасти - Булево +// * ВидыСубконто - Булево +// * УстановитьНовыйКод - Булево - Доступна автоустановка кода Функция ОписаниеТипаМетаданных() Экспорт Описание = Новый Структура(); @@ -184,14 +182,12 @@ Описание.Вставить("Конструктор", ""); Описание.Вставить("Группы", Ложь); Описание.Вставить("Ссылочный", Ложь); + Описание.Вставить("НаборыРеквизитов", Новый Массив); + Описание.Вставить("ТабличныеЧасти", Ложь); + Описание.Вставить("ВидыСубконто", Ложь); Описание.Вставить("Регистр", Ложь); Описание.Вставить("ОбработкаОтчет", Ложь); - Описание.Вставить("СтандартныеРеквизиты", Ложь); - Описание.Вставить("Реквизиты", Ложь); - Описание.Вставить("Измерения", Ложь); - Описание.Вставить("Ресурсы", Ложь); - Описание.Вставить("РеквизитыАдресации", Ложь); - Описание.Вставить("ТабличныеЧасти", Ложь); + Описание.Вставить("УстановитьНовыйКод", Ложь); Возврат Описание; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index ec9ee5300..b93500beb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -25,7 +25,3 @@ КонецФункции #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 69f9a5f43..90a621526 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -22,7 +22,7 @@ // Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами // // Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрикаСлужебный.ОписаниеМодуля +// Массив из см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля - Коллекция описаний моделей Функция МодулиРасширений() Экспорт УстановитьПривилегированныйРежим(Истина); @@ -55,7 +55,7 @@ КонецЕсли; КонецЕсли; - Описание = ЮТФабрикаСлужебный.ОписаниеМодуля(); + Описание = ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля(); Описание.Имя = Модуль.Имя; Описание.КлиентУправляемоеПриложение = Модуль.КлиентУправляемоеПриложение; Описание.КлиентОбычноеПриложение = Модуль.КлиентОбычноеПриложение; @@ -63,7 +63,6 @@ Описание.Сервер = Модуль.Сервер; Описание.ВызовСервера = Модуль.ВызовСервера; Описание.Расширение = Модуль.РасширениеКонфигурации().Имя; - Описание.ПолноеИмя = СтрШаблон("%1.%2", Описание.Расширение, Модуль.Имя); Возврат Описание; @@ -83,25 +82,17 @@ Возврат ОписаниеОбъект; КонецЕсли; - Если ОписаниеТипа.СтандартныеРеквизиты Тогда - ДобавитьОписанияРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, ОписаниеОбъект.Реквизиты, "Ссылка, Период"); - КонецЕсли; - - Если ОписаниеТипа.Измерения Тогда - ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Измерения, ОписаниеОбъект.Реквизиты, Истина); - КонецЕсли; - - Если ОписаниеТипа.Реквизиты Тогда - ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Реквизиты, ОписаниеОбъект.Реквизиты, Ложь); - КонецЕсли; - - Если ОписаниеТипа.Ресурсы Тогда - ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Ресурсы, ОписаниеОбъект.Реквизиты, Ложь); - КонецЕсли; - - Если ОписаниеТипа.РеквизитыАдресации Тогда - ДобавитьОписанияРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, ОписаниеОбъект.Реквизиты, Ложь); - КонецЕсли; + Для Каждого НаборРеквизитов Из ОписаниеТипа.НаборыРеквизитов Цикл + Если СтрСравнить(НаборРеквизитов, "СтандартныеРеквизиты") Тогда + Ключ = "Ссылка, Период"; + ИначеЕсли СтрСравнить(НаборРеквизитов, "Измерения") Тогда + Ключ = Истина; + Иначе + Ключ = Ложь; + КонецЕсли; + + ДобавитьОписанияРеквизитов(МетаданныеОбъекта[НаборРеквизитов], ОписаниеОбъект.Реквизиты, Ключ); + КонецЦикла; ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, ОписаниеОбъект.Реквизиты); @@ -116,6 +107,25 @@ КонецЕсли; + Если ОписаниеТипа.ВидыСубконто Тогда + + РеквизитыТабличнойЧасти = Новый Структура(); + + ОписаниеРеквизита = ОписаниеРеквизита("ВидСубконто", ЮТТипыДанныхСлужебный.НовыйТипСсылки(МетаданныеОбъекта.ВидыСубконто), Истина); + РеквизитыТабличнойЧасти.Вставить(ОписаниеРеквизита.Имя, ОписаниеРеквизита); + + ОписаниеРеквизита = ОписаниеРеквизита("Предопределенное", Новый ОписаниеТипов("Булево")); + РеквизитыТабличнойЧасти.Вставить(ОписаниеРеквизита.Имя, ОписаниеРеквизита); + + ОписаниеРеквизита = ОписаниеРеквизита("ТолькоОбороты", Новый ОписаниеТипов("Булево")); + РеквизитыТабличнойЧасти.Вставить(ОписаниеРеквизита.Имя, ОписаниеРеквизита); + + ДобавитьОписанияРеквизитов(МетаданныеОбъекта.ПризнакиУчетаСубконто, РеквизитыТабличнойЧасти, Ложь); + + ОписаниеОбъект.ТабличныеЧасти.Вставить("ВидыСубконто", РеквизитыТабличнойЧасти); + + КонецЕсли; + Возврат Новый ФиксированнаяСтруктура(ОписаниеОбъект); КонецФункции @@ -156,22 +166,23 @@ ТипыМетаданных = Новый Структура(); + //@skip-check structure-consructor-too-many-keys + ИменаОбработкаОтчет = Новый Структура("Обработка, Отчет, Report, DataProcessor"); + Для Каждого Запись Из КоллекцияОписаний Цикл - Описание = Новый Структура(); - Описание.Вставить("Имя", Запись.Имя); - Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции); - Описание.Вставить("Конструктор", Запись.Конструктор); - Описание.Вставить("Группы", Запись.Группы = "+"); - Описание.Вставить("Ссылочный", Запись.Ссылочный = "+"); - Описание.Вставить("Реквизиты", Запись.Реквизиты = "+"); - Описание.Вставить("Измерения", Запись.Измерения = "+"); - Описание.Вставить("Ресурсы", Запись.Ресурсы = "+"); - Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+"); - Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+"); - Описание.Вставить("СтандартныеРеквизиты", Запись.СтандартныеРеквизиты = "+"); - Описание.Вставить("ОбработкаОтчет", Запись.Имя = "Обработка" ИЛИ Запись.Имя = "Отчет"); - Описание.Вставить("Регистр", СтрНачинаетсяС(Запись.Имя, "Регистр")); + Описание = ЮТМетаданные.ОписаниеТипаМетаданных(); + Описание.Имя = Запись.Имя; + Описание.ИмяКоллекции = Запись.ИмяКоллекции; + Описание.Конструктор = Запись.Конструктор; + Описание.НаборыРеквизитов = ЮТСтроки.РазделитьСтроку(Запись.Реквизиты, ","); + Описание.Группы = Запись.Группы = "+"; + Описание.Ссылочный = Запись.Ссылочный = "+"; + Описание.ТабличныеЧасти = Запись.ТабличныеЧасти = "+"; + Описание.ВидыСубконто = Запись.ВидыСубконто = "+"; + Описание.УстановитьНовыйКод = Запись.УстановитьНовыйКод = "+"; + Описание.ОбработкаОтчет = ИменаОбработкаОтчет.Свойство(Запись.Имя); + Описание.Регистр = СтрНачинаетсяС(Запись.Имя, "Регистр") Или СтрЗаканчиваетсяНа(Запись.Имя, "Register"); ТипыМетаданных.Вставить(Описание.Имя, Описание); ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание); @@ -184,8 +195,8 @@ Функция РазрешеныСинхронныеВызовы() Экспорт - Возврат Метаданные.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент - = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент.Использовать; + Режим = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент; + Возврат Метаданные.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент = Режим.Использовать; КонецФункции @@ -209,12 +220,6 @@ КонецФункции -Функция ВариантВстроенногоЯзыка() Экспорт - - Возврат String(Metadata.ScriptVariant); - -КонецФункции - #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -355,4 +360,15 @@ КонецФункции +Функция ОписаниеРеквизита(Имя, Тип, Обязательное = Ложь) + + ОписаниеРеквизита = ЮТМетаданные.ОписаниеРеквизита(); + ОписаниеРеквизита.Имя = Имя; + ОписаниеРеквизита.Обязательный = Обязательное; + ОписаниеРеквизита.Тип = Тип; + + Возврат ОписаниеРеквизита; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index 23f46fc6a..634ecc234 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -49,12 +49,6 @@ КонецФункции -Функция ВариантВстроенногоЯзыка() Экспорт - - Возврат ЮТМетаданныеСлужебныйВызовСервера.ВариантВстроенногоЯзыка(); - -КонецФункции - Функция ВерсияДвижка() Экспорт Возврат ЮТМетаданныеСлужебныйВызовСервера.ВерсияДвижка(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" new file mode 100644 index 000000000..fa173c5cd --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" @@ -0,0 +1,124 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Выполняет вызов метода модуля конфигурации +// +// Параметры: +// ИмяМодуля - Строка - Имя модуля +// ИмяМетода - Строка - Имя метода +// Параметры - Неопределено - Вызов метода без параметров +// - Массив из Произвольный - Параметры вызова метода +// В качестве конструктора параметров можно использовать см. МассивПараметров +Процедура ВызватьМетодМодуля(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТМетоды.ВызватьМетодМодуля"); +#КонецЕсли + + ЮТМетодыСлужебный.ВыполнитьМетодКонфигурации(ИмяМодуля, ИмяМетода, Параметры); + +КонецПроцедуры + +// Выполняет вызов метода указанного объекта +// +// Параметры: +// Объект - Строка - Объект, метод которого необходимо вызвать +// ИмяМетода - Строка - Имя метода +// Параметры - Неопределено - Вызов метода без параметров +// - Массив из Произвольный - Параметры вызова метода +// В качестве конструктора параметров можно использовать см. МассивПараметров +Процедура ВызватьМетодОбъекта(Объект, ИмяМетода, Параметры = Неопределено) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТМетоды.ВызватьМетодОбъекта"); +#КонецЕсли + + ЮТМетодыСлужебный.ВыполнитьМетодОбъекта(Объект, ИмяМетода, Параметры); + +КонецПроцедуры + +// Формирует массив параметров. Применяется при обучении (настройке) мокито. +// Если параметр пропущен, то будет использовать параметр по умолчанию. +// +// Параметры: +// Параметр1 - Произвольный +// Параметр2 - Произвольный +// Параметр3 - Произвольный +// Параметр4 - Произвольный +// Параметр5 - Произвольный +// Параметр6 - Произвольный +// Параметр7 - Произвольный +// Параметр8 - Произвольный +// Параметр9 - Произвольный +// Параметр10 - Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Массив параметров +//@skip-check method-too-many-params +// BSLLS:NumberOfOptionalParams-off +// BSLLS:NumberOfParams-off +// BSLLS:DuplicateStringLiteral-off +Функция МассивПараметров(Параметр1 = "_!%*", + Параметр2 = "_!%*", + Параметр3 = "_!%*", + Параметр4 = "_!%*", + Параметр5 = "_!%*", + Параметр6 = "_!%*", + Параметр7 = "_!%*", + Параметр8 = "_!%*", + Параметр9 = "_!%*", + Параметр10 = "_!%*") Экспорт + + Возврат ЮТОбщийСлужебный.ЗначениеВМассивеПоУмолчанию(ПараметрПоУмолчанию(), + Параметр1, + Параметр2, + Параметр3, + Параметр4, + Параметр5, + Параметр6, + Параметр7, + Параметр8, + Параметр9, + Параметр10); + +КонецФункции +// BSLLS:DuplicateStringLiteral-on +// BSLLS:NumberOfParams-on +// BSLLS:NumberOfOptionalParams-on + +// Возвращает идентификатор значения входного параметра по умолчанию. +// +// Возвращаемое значение: +// Строка +// +// Примеры: +// +// ЮТТесты.ДобавитьТест("Тест1") +// .СПараметрами( +// Мокито.ПараметрПоУмолчанию(), +// 2); // Будет зарегистрирован один тест с параметрами <значение по умолчанию>, 2 +// +Функция ПараметрПоУмолчанию() Экспорт + + Возврат "<[ЗначениеВходногоПараметраПоУмолчанию]>"; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213.mdo" similarity index 66% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213.mdo" index 86c5fbaff..83b07d9c2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213.mdo" @@ -1,9 +1,9 @@ - - ЮТЛокальСлужебный + + ЮТМетоды ru - Локаль служебный + Методы true true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2baddf600..01a37ab43 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,7 +60,7 @@ ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода); Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; - Ошибка = ВыполнитьМетод(Алгоритм); + Ошибка = ВыполнитьВыражениеСПерехватомОшибки(Алгоритм); ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода); Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров; @@ -85,7 +85,7 @@ ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода); Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)"; - Ошибка = ВыполнитьМетод(Алгоритм, , Объект); + Ошибка = ВыполнитьВыражениеСПерехватомОшибки(Алгоритм, , Объект); ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода); Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров; @@ -97,93 +97,173 @@ #Область ВызовМетодов -Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт +Процедура ВыполнитьМетодОбъекта(Объект, ИмяМетода, Параметры = Неопределено) Экспорт -#Если ВебКлиент Тогда - ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); -#Иначе - Алгоритм = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, "Параметры"); + Выражение = "Объект." + СтрокаВызоваМетода(ИмяМетода, Параметры, "Параметры"); + ВыполнитьВыражение(Выражение, Параметры, Объект, Ложь); - Попытка - //@skip-check server-execution-safe-mode - Выполнить(Алгоритм); - Исключение - Возврат ИнформацияОбОшибке(); - КонецПопытки; +КонецПроцедуры + +Функция ВыполнитьМетодОбъектаСПерехватомОшибки(Объект, ИмяМетода, Параметры = Неопределено) Экспорт - Возврат Неопределено; -#КонецЕсли + Выражение = "Объект." + СтрокаВызоваМетода(ИмяМетода, Параметры, "Параметры"); + Возврат ВыполнитьВыражениеСПерехватомОшибки(Выражение, Параметры, Объект, Ложь); + +КонецФункции + +Процедура ВыполнитьМетодКонфигурации(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт + + ПолноеИмяМетода = ЮТСтроки.ДобавитьСтроку(ИмяМодуля, ИмяМетода, "."); + Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, "Параметры"); + + ВыполнитьВыражение(Выражение, Параметры, , Ложь); + +КонецПроцедуры + +Функция ВыполнитьМетодКонфигурацииСПерехватомОшибки(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт + + ПолноеИмяМетода = ЮТСтроки.ДобавитьСтроку(ИмяМодуля, ИмяМетода, "."); + Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, "Параметры"); + + Возврат ВыполнитьВыражениеСПерехватомОшибки(Выражение, Параметры, , Ложь); + +КонецФункции + +Функция ВычислитьБезопасно(Выражение, Параметры = Неопределено) Экспорт + + Возврат ВычислитьВыражение(Выражение, Параметры, Истина); + +КонецФункции + +Функция ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт + + Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМодуля) Тогда + ВызватьИсключение "Передано невалидное имя общего модуля в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`"; + КонецЕсли; + + Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМетода) Тогда + ВызватьИсключение "Передано невалидное имя метода в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`"; + КонецЕсли; + + Возврат ЮТОбщийСлужебныйВызовСервера.ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры); + +КонецФункции + +Функция ВызватьФункциюОбъекта(Объект, ИмяМетода, Параметры = Неопределено) Экспорт + + Выражение = "Объект." + СтрокаВызоваМетода(ИмяМетода, Параметры); + Возврат ВычислитьВыражение(Выражение, Параметры); + +КонецФункции + +Функция ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры, Безопасно = Истина) Экспорт + + ПолноеИмяМетода = ЮТСтроки.ДобавитьСтроку(ИмяМодуля, ИмяМетода, "."); + Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры); + + Возврат ВычислитьВыражение(Выражение, Параметры, Безопасно); КонецФункции -Функция СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, ИмяМассиваПараметров = "Параметры") Экспорт +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, ИмяМассиваПараметров = "Параметры") Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда - Алгоритм = ПолноеИмяМетода; + Выражение = ПолноеИмяМетода; ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда - Алгоритм = ПолноеИмяМетода + "()"; + Выражение = ПолноеИмяМетода + "()"; ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда - Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, ИмяМассиваПараметров)); + Выражение = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, ИмяМассиваПараметров)); Иначе - ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры)); + ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода (%2), должен быть массив", ТипЗнч(Параметры), ПолноеИмяМетода); КонецЕсли; - Возврат Алгоритм; + Возврат Выражение; КонецФункции -Функция ВычислитьБезопасно(Выражение) Экспорт +Процедура ВыполнитьВыражение(Выражение, Параметры = Неопределено, Объект = Неопределено, Безопасно = Истина) + + // BSLLS:ExecuteExternalCodeInCommonModule-off +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТМетодыСлужебный.ВыполнитьВыражение"); +#КонецЕсли + +#Если ТонкийКлиент Тогда + Выполнить(Выражение); +#ИначеЕсли НЕ ВебКлиент Тогда + Если Безопасно Тогда + УстановитьБезопасныйРежим(Истина); + Выполнить(Выражение); + Иначе + //@skip-check server-execution-safe-mode + Выполнить(Выражение); + КонецЕсли; +#КонецЕсли + // BSLLS:ExecuteExternalCodeInCommonModule-on + +КонецПроцедуры + +Функция ВыполнитьВыражениеСПерехватомОшибки(Выражение, Параметры = Неопределено, Объект = Неопределено, Безопасно = Истина) + + // BSLLS:ExecuteExternalCodeInCommonModule-off +#Если ВебКлиент Тогда + ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТМетодыСлужебный.ВыполнитьВыражение"); +#КонецЕсли -#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда - УстановитьБезопасныйРежим(Истина); Попытка - Значение = Вычислить(Выражение); +#Если ТонкийКлиент Тогда + Выполнить(Выражение); +#ИначеЕсли НЕ ВебКлиент Тогда + Если Безопасно Тогда + УстановитьБезопасныйРежим(Истина); + Выполнить(Выражение); + Иначе + //@skip-check server-execution-safe-mode + Выполнить(Выражение); + КонецЕсли; +#КонецЕсли Исключение - УстановитьБезопасныйРежим(Ложь); - ВызватьИсключение; + Возврат ИнформацияОбОшибке(); КонецПопытки; - УстановитьБезопасныйРежим(Ложь); -#Иначе - Значение = Вычислить(Выражение); -#КонецЕсли - - Возврат Значение; + Возврат Неопределено; + // BSLLS:ExecuteExternalCodeInCommonModule-on КонецФункции -Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт +Функция ВычислитьВыражение(Выражение, Параметры = Неопределено, Безопасно = Истина) - Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры); + // BSLLS:ExecuteExternalCodeInCommonModule-off + Если НЕ Безопасно Тогда + //@skip-check server-execution-safe-mode + Возврат Вычислить(Выражение); + КонецЕсли; #Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда - Если Безопасно Тогда - УстановитьБезопасныйРежим(Истина); - Попытка - Значение = Вычислить(Выражение); - Исключение - УстановитьБезопасныйРежим(Ложь); - ВызватьИсключение; - КонецПопытки; - УстановитьБезопасныйРежим(Ложь); - Иначе - //@skip-check server-execution-safe-mode + УстановитьБезопасныйРежим(Истина); + Попытка Значение = Вычислить(Выражение); - КонецЕсли; + Исключение + УстановитьБезопасныйРежим(Ложь); + ВызватьИсключение; + КонецПопытки; + + УстановитьБезопасныйРежим(Ложь); #Иначе Значение = Вычислить(Выражение); #КонецЕсли Возврат Значение; + // BSLLS:ExecuteExternalCodeInCommonModule-on КонецФункции -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - Функция ВерсияЗапретаИспользованияУстаревших() Возврат "23.01"; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" index d738e24f1..5d0c8f033 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" @@ -76,7 +76,7 @@ // ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста // ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию // СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов. -// Ложь - По умолчанию, будет выполнен поиск и получение значения для родетелей (набор, модуль), если значения для текущего элемента не установлено. +// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), если значения для текущего элемента не установлено. // Истина - Получение настройки только для текущего элемента. // // Возвращаемое значение: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 4f021dbe1..26f736d49 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -55,19 +55,6 @@ КонецФункции -// Вычисляет хеш по алгоритму md5. -// -// Параметры: -// Данные - Строка, ДвоичныеДанные - Данные, для которых необходимо вычислить хеш -// -// Возвращаемое значение: -// Строка -Функция ХешMD5(Данные) Экспорт - - Возврат ЮТОбщийСлужебныйВызовСервера.ХешMD5(Данные); - -КонецФункции - #Область ДатаВремя // Добавляет к дате указанное значение временных интервалов @@ -122,7 +109,7 @@ #Область ДатаВремя -// Человекочитаемое представление продолжительности +// Формирует представление продолжительности в удобном для восприятия виде, с выделением минут секунд и тд. // // Параметры: // Продолжительность - Число - Продолжительность в миллисекундах @@ -140,16 +127,20 @@ КонецФункции -Функция ПредставлениеУниверсальнойДата(Знач УниверсальнаяДатаВМиллисекундах = Неопределено) Экспорт +Функция ПредставлениеУниверсальнойДата(Знач УниверсальнаяДатаВМиллисекундах = Неопределено, ТолькоВремя = Ложь) Экспорт Если УниверсальнаяДатаВМиллисекундах = Неопределено Тогда УниверсальнаяДатаВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЕсли; - Дата = '00010101' + УниверсальнаяДатаВМиллисекундах / 1000; + Множитель = 1000; + + Дата = '00010101' + УниверсальнаяДатаВМиллисекундах / Множитель; Дата = МестноеВремя(Дата); - Возврат СтрШаблон("%1.%2", Дата, Формат(УниверсальнаяДатаВМиллисекундах % 1000, "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;")); + ФорматДата = ?(ТолькоВремя, "ДФ='HH:mm:ss';", "ДФ='dd.MM.yyyy HH:mm:ss';"); + ФорматМиллисекунды = "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"; + Возврат СтрШаблон("%1.%2", Формат(Дата, ФорматДата), Формат(УниверсальнаяДатаВМиллисекундах % Множитель, ФорматМиллисекунды)); КонецФункции @@ -335,7 +326,7 @@ КонецПроцедуры -// Преостанавливает поток выполнения на указанное количество секунд +// Приостанавливает поток выполнения на указанное количество секунд // // Параметры: // Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение @@ -376,7 +367,7 @@ КонецПроцедуры -// Возвращяет макет +// Возвращает макет // // Параметры: // ИмяМакета - Строка - Возможные значения @@ -713,7 +704,11 @@ Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыполнитьМетод", Неопределено, "24.03"); - Возврат ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, Параметры, Объект); + Если Объект <> Неопределено Тогда + Возврат ЮТМетодыСлужебный.ВыполнитьМетодОбъектаСПерехватомОшибки(Объект, ПолноеИмяМетода, Параметры); + Иначе + Возврат ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ПолноеИмяМетода, , Параметры); + КонецЕсли; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..1de44fced --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,102 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Вычисляет хеш по алгоритму md5. +// +// Параметры: +// Данные - Строка, ДвоичныеДанные - Данные, для которых необходимо вычислить хеш +// +// Возвращаемое значение: +// Строка +Функция ХешMD5(Данные) Экспорт + + Возврат ЮТОбщийСлужебныйВызовСервера.ХешMD5(Данные); + +КонецФункции + +// Создает массив с переданными значениями +// +// Параметры: +// ЗначениеПоУмолчанию - Произвольный - Значение, подставляемое для пропущенных параметров +// Значение1 - Произвольный +// Значение2 - Произвольный +// Значение3 - Произвольный +// Значение4 - Произвольный +// Значение5 - Произвольный +// Значение6 - Произвольный +// Значение7 - Произвольный +// Значение8 - Произвольный +// Значение9 - Произвольный +// Значение10 - Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Массив переданных значений +//@skip-check method-too-many-params +// BSLLS:NumberOfOptionalParams-off +// BSLLS:NumberOfParams-off +// BSLLS:DuplicateStringLiteral-off +Функция ЗначениеВМассивеПоУмолчанию(ЗначениеПоУмолчанию, + Значение1, + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") Экспорт + + ФлагПустогоЗначения = "_!%*"; + Значения = Неопределено; + + Для Инд = - 10 По - 1 Цикл + + //@skip-check server-execution-safe-mode + Значение = Вычислить("Значение" + ( - Инд)); // BSLLS:ExecuteExternalCodeInCommonModule-off + + Если Значение = ФлагПустогоЗначения И Значения = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если Значения = Неопределено Тогда + Значения = Новый Массив(- Инд); + КонецЕсли; + + Если Значение = ФлагПустогоЗначения Тогда + Значение = ЗначениеПоУмолчанию; + КонецЕсли; + + Значения[ - Инд - 1] = Значение; + + КонецЦикла; + + Возврат Значения; + +КонецФункции +// BSLLS:DuplicateStringLiteral-on +// BSLLS:NumberOfParams-on +// BSLLS:NumberOfOptionalParams-on + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..7361f29e0 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТОбщийСлужебный + + ru + Общий служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 93863b778..5a7e2c1fc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -45,14 +45,8 @@ ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); КонецЕсли; - ИмяТипа = ""; - Если ЭтоАнглийскийВстроенныйЯзык() Тогда - ИмяТипа = СтрШаблон("%1Manager.%2", Описание.ОписаниеТипа.Имя, Описание.Имя); - Иначе - ИмяТипа = СтрШаблон("%1Менеджер.%2", Описание.ОписаниеТипа.Имя, Описание.Имя); - КонецЕсли; - - Возврат Новый(ИмяТипа); + Тип = ЮТТипыДанныхСлужебный.НовыйТипМенеджера(Описание); + Возврат Новый(Тип); КонецФункции @@ -104,18 +98,6 @@ Возврат ХранилищеЗначений.Получить(); КонецФункции -Функция ЭтоАнглийскийВстроенныйЯзык() Экспорт - - Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "English"; - -КонецФункции - -Функция ЭтоРусскийВстроенныйЯзык() Экспорт - - Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "Русский"; - -КонецФункции - Функция ХешMD5(Строка) Экспорт Хеш = Новый ХешированиеДанных(ХешФункция.MD5); @@ -124,6 +106,12 @@ КонецФункции +Функция ВызватьФункциюКонфигурацииНаСервере(Знач ИмяМодуля, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры, Ложь); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" new file mode 100644 index 000000000..8c0fe34fe --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" @@ -0,0 +1,106 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Возвращает информацию об окружении +// +// Возвращаемое значение: +// см. ЮТФабрика.НовоеОписаниеОкружения +Функция ОписаниеОкружения() Экспорт + + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("Окружение"); + +КонецФункции + +// Версия платформы. +// +// Возвращаемое значение: +// Строка - Версия платформы +Функция ВерсияПлатформы() Экспорт + + Возврат ЮТСлужебныйПовторногоИспользования.ВерсияПлатформы(); + +КонецФункции + +// Используется английский встроенный язык разработки. +// +// Возвращаемое значение: +// Булево - Используется английский встроенный язык +Функция ИспользуетсяАнглийскийВстроенныйЯзык() Экспорт + + Возврат СтрСравнить(ОписаниеОкружения().ВстроенныйЯзык, "en") = 0; + +КонецФункции + +// Используется русский встроенный язык разработки. +// +// Возвращаемое значение: +// Булево - Используется русский встроенный язык +Функция ИспользуетсяРусскийВстроенныйЯзык() Экспорт + + Возврат СтрСравнить(ОписаниеОкружения().ВстроенныйЯзык, "ru") = 0; + +КонецФункции + +// Возвращает код языка интерфейса. +// +// Возвращаемое значение: +// Строка - Локаль интерфейса +Функция ЛокальИнтерфейса() Экспорт + +#Если Клиент Тогда + Возврат ТекущийЯзык(); +#Иначе + Возврат ТекущийЯзык().КодЯзыка; +#КонецЕсли + +КонецФункции + +// Возвращает код языка платформы. +// +// Возвращаемое значение: +// Строка - Локаль платформы +Функция ЛокальПлатформы() Экспорт + + Возврат ТекущийЯзыкСистемы(); + +КонецФункции + +// Используется английская локаль платформы. +// +// Возвращаемое значение: +// Булево - Используется английская локаль платформы +Функция ИспользуетсяАнглийскаяЛокальПлатформы() Экспорт + + Возврат ЛокальПлатформы() = "en"; + +КонецФункции + +// Используется русская локаль платформы. +// +// Возвращаемое значение: +// Булево - Используется русская локаль платформы +Функция ИспользуетсяРусскаяЛокальПлатформы() Экспорт + + Возврат ЛокальПлатформы() = "ru"; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265.mdo" new file mode 100644 index 000000000..eee2565b4 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265.mdo" @@ -0,0 +1,11 @@ + + + ЮТОкружение + + ru + Окружение + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..6cd501937 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,152 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Собирает информацию об окружения, как сервера, так и клиента. +// +// Возвращаемое значение: +// см. ЮТФабрика.НовоеОписаниеОкружения +Функция ОписаниеОкружения() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТОкружениеСлужебныйКлиентСервер", + "ОписаниеСерверногоОкружения"); + + Платформа = Платформа(СистемнаяИнформация); + + Окружение = ЮТФабрика.НовоеОписаниеОкружения(); + + Окружение.Конфигурация = ОписаниеСерверногоОкружения.Конфигурация; + Окружение.ВерсияКонфигурации = ОписаниеСерверногоОкружения.ВерсияКонфигурации; + Окружение.ВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения; + Окружение.ИнформационнаяСреда = "DEV"; + Окружение.ТестовыйДвижок = ОписаниеСерверногоОкружения.ТестовыйДвижок; + Окружение.ВерсияТестовогоДвижка = ОписаниеСерверногоОкружения.ВерсияТестовогоДвижка; + + Окружение.ВстроенныйЯзык = ОписаниеСерверногоОкружения.ВстроенныйЯзык; + + Окружение.ОперационнаяСистемаКлиент = Платформа.ОперационнаяСистема; + Окружение.АрхитектураКлиент = Платформа.Архитектура; + + Окружение.ОперационнаяСистемаСервер = ОписаниеСерверногоОкружения.ОперационнаяСистема; + Окружение.АрхитектураСервер = ОписаниеСерверногоОкружения.Архитектура; + + Окружение.ФайловаяБаза = ЭтоФайловаяБаза(); + +#Если ВебКлиент Тогда + Окружение.ВебКлиент = Истина; +#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда + Окружение.ОбычноеПриложение = Истина; + Окружение.ТолстыйКлиент = Истина; +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда + Окружение.ТолстыйКлиент = Истина; +#КонецЕсли + + //@skip-check use-non-recommended-method + Окружение.ВремяЗапуска = ТекущаяДата(); // BSLLS:DeprecatedCurrentDate-off + + //@skip-check constructor-function-return-section + Возврат Окружение; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + Окружение = ОписаниеОкружения(); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("Окружение", Окружение, Истина); + +КонецПроцедуры + +Функция ЭтоФайловаяБаза() + + Возврат СтрНайти(Врег(СтрокаСоединенияИнформационнойБазы()), "FILE=") = 1; + +КонецФункции + +Функция Платформа(СистемнаяИнформация) Экспорт + + ОперационнаяСистема = Неопределено; + Архитектура = Неопределено; + + Linux = "Linux"; + Windows = "Windows"; + MacOS = "MacOS"; + + //@skip-check bsl-variable-name-invalid + x86 = "i386"; + //@skip-check bsl-variable-name-invalid + x64 = "x86_64"; + + ТипКлиентскойПлатформы = СистемнаяИнформация.ТипПлатформы; + + Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда + ОперационнаяСистема = Linux; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда + ОперационнаяСистема = Linux; + Архитектура = x64; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда + ОперационнаяСистема = Windows; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда + ОперационнаяСистема = Windows; + Архитектура = x64; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда + ОперационнаяСистема = MacOS; + Архитектура = x86; + ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда + ОперационнаяСистема = MacOS; + Архитектура = x64; + Иначе + ВызватьИсключение "Неподдерживаемый тип платформы"; + КонецЕсли; + + Возврат Новый Структура("ОперационнаяСистема, Архитектура", ОперационнаяСистема, Архитектура); + +КонецФункции + +#Если Сервер Тогда +Функция ОписаниеСерверногоОкружения() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + Платформа = Платформа(СистемнаяИнформация); + + Окружение = Новый Структура; + Окружение.Вставить("ОперационнаяСистема", Платформа.ОперационнаяСистема); + Окружение.Вставить("Архитектура", Платформа.Архитектура); + + ЭтоРусскийВстроенныйЯзык = Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский; + Окружение.Вставить("ВстроенныйЯзык", Формат(ЭтоРусскийВстроенныйЯзык, "БЛ=en; БИ=ru;")); + + Расширение = Метаданные.ОбщиеМодули.ЮТОкружениеСлужебныйКлиентСервер.РасширениеКонфигурации(); + Окружение.Вставить("ТестовыйДвижок", Расширение.Имя); + Окружение.Вставить("ВерсияТестовогоДвижка", Расширение.Версия); + Окружение.Вставить("Конфигурация", Метаданные.Представление()); + Окружение.Вставить("ВерсияКонфигурации", Метаданные.Версия); + + Возврат Окружение; + +КонецФункции +#КонецЕсли + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..d765a3dd5 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,12 @@ + + + ЮТОкружениеСлужебныйКлиентСервер + + ru + Окружение служебный + + true + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2f39ac29d..af2b406c1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -43,7 +43,8 @@ Для Каждого РезультатТеста Из Набор.Тесты Цикл Попытка - СохранитьОтчетТеста(РезультатТеста, Набор, Модуль, Каталог); + Описание = ОписаниеТеста(РезультатТеста, Набор, Модуль); + СохранитьОтчетТеста(Описание, Каталог); Исключение ЮТЛогирование.Ошибка("Ошибка сохранения отчета в формате Allure. " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; @@ -53,6 +54,8 @@ КонецЦикла; КонецЦикла; + + ЗаписатьИнформациюОбОкружении(Каталог); #КонецЕсли ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); @@ -63,9 +66,7 @@ #Область СлужебныеПроцедурыИФункции #Если НЕ ВебКлиент Тогда -Процедура СохранитьОтчетТеста(РезультатТеста, Набор, Модуль, Каталог) - - Описание = ОписаниеТеста(РезультатТеста, Набор, Модуль); +Процедура СохранитьОтчетТеста(Описание, Каталог) ИмяФайла = ЮТФайлы.ОбъединитьПути(Каталог, Описание.uuid + "-result.json"); Запись = Новый ЗаписьJSON(); @@ -78,19 +79,22 @@ Функция ОписаниеТеста(РезультатТеста, Набор, Модуль) Экспорт Статусы = ЮТФабрика.СтатусыИсполненияТеста(); + ПолноеИмяМетода = СтрШаблон("%1.%2", Модуль.Метаданные.Имя, РезультатТеста.Метод); ПредставлениеРежима = СтрШаблон(" [%1]", РезультатТеста.Режим); - ПолныйИдентификаторТеста = СтрШаблон("%1_%2_%3", РезультатТеста.НомерВНаборе, РезультатТеста.ПолноеИмяМетода, РезультатТеста.Режим); + ПолныйИдентификаторТеста = СтрШаблон("%1_%2_%3", РезультатТеста.НомерВНаборе, ПолноеИмяМетода, РезультатТеста.Режим); + + Теги = ЮТОтчетСлужебныйКлиентСервер.УникальныеТеги(Модуль, Набор, РезультатТеста); Описание = НовыйОписаниеТеста(); - Описание.fullName = РезультатТеста.ПолноеИмяМетода + ПредставлениеРежима; + Описание.fullName = ПолноеИмяМетода + ПредставлениеРежима; Описание.name = РезультатТеста.Метод + ПредставлениеРежима; Описание.status = СтатусОтчета(РезультатТеста.Статус, Статусы); - Описание.testCaseId = ЮТОбщий.ХешMD5(ПолныйИдентификаторТеста); + Описание.testCaseId = ЮТОбщийСлужебный.ХешMD5(ПолныйИдентификаторТеста); Описание.start = ЮниксВремя(РезультатТеста.ДатаСтарта); Описание.stop = ЮниксВремя(РезультатТеста.ДатаСтарта) + РезультатТеста.Длительность; - ОписаниеМодуля = ИмяМодуляПоСхеме(Модуль.МетаданныеМодуля.Имя); - ИмяНабора = Модуль.МетаданныеМодуля.Имя; + ОписаниеМодуля = ИмяМодуляПоСхеме(Модуль.Метаданные.Имя); + ИмяНабора = Модуль.Метаданные.Имя; ИмяВложенногоНабора = Набор.Представление + ПредставлениеРежима; ДобавитьМетку(Описание, "language", "bsl"); @@ -109,13 +113,13 @@ КонецЕсли; ДобавитьМетку(Описание, "suite", ИмяНабора); - Если Модуль.НаборыТестов.Количество() > 1 ИЛИ Модуль.МетаданныеМодуля.Имя <> Набор.Представление Тогда + Если Модуль.НаборыТестов.Количество() > 1 ИЛИ Модуль.Метаданные.Имя <> Набор.Представление Тогда ДобавитьМетку(Описание, "subSuite", ИмяВложенногоНабора); КонецЕсли; ДобавитьМетку(Описание, "tag", РезультатТеста.Режим); - Для Каждого Тег Из РезультатТеста.Теги Цикл + Для Каждого Тег Из Теги Цикл ДобавитьМетку(Описание, "tag", Тег); КонецЦикла; @@ -126,7 +130,7 @@ КонецЦикла; КонецЕсли; - Описание.historyId = ЮТОбщий.ХешMD5(ПолныйИдентификаторТеста); + Описание.historyId = ЮТОбщийСлужебный.ХешMD5(ПолныйИдентификаторТеста); Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл @@ -263,10 +267,68 @@ КонецФункции Функция ЮниксВремя(ДатаВМиллисекундах) - + Возврат ДатаВМиллисекундах - 62135596800000; + +КонецФункции + +Процедура ЗаписатьИнформациюОбОкружении(Каталог) + + Окружение = ЮТест.Окружение(); + + Если НЕ ЗначениеЗаполнено(Окружение) Тогда + Возврат; + КонецЕсли; + + ИмяФайла = ЮТФайлы.ОбъединитьПути(Каталог, "environment.properties"); + Запись = Новый ЗаписьТекста(ИмяФайла, "ISO-8859-1", , Ложь); + + Для Каждого Элемент Из ЮТест.Окружение() Цикл + ЗаписатьСтрокуProperties(Запись, СтрШаблон("%1=%2", Элемент.Ключ, Элемент.Значение)); + КонецЦикла; + Запись.Закрыть(); + +КонецПроцедуры +Процедура ЗаписатьСтрокуProperties(Запись, ВходнаяСтрока) + + ГраницаЛатиницы = 127; + + Для Инд = 1 По СтрДлина(ВходнаяСтрока) Цикл + КодСимволаЗначения = КодСимвола(ВходнаяСтрока, Инд); + Если КодСимволаЗначения > ГраницаЛатиницы Тогда + Запись.Записать("\u" + ПеревестиВШестнадцатеричнуюСистему(КодСимволаЗначения)); + Иначе + Запись.Записать(Сред(ВходнаяСтрока, Инд, 1)); + КонецЕсли; + КонецЦикла; + + Запись.Записать(Символы.ПС); + +КонецПроцедуры + +Функция ПеревестиВШестнадцатеричнуюСистему(Знач Число) + + Основание = 16; + Длина = 4; + + СимволыСистемы = СтрРазделить("0 1 2 3 4 5 6 7 8 9 A B C D E F", " "); + + Результат = ""; + Пока Число <> 0 Цикл + Остаток = Число % Основание; + Результат = СимволыСистемы[Остаток] + Результат; + Число = Цел(Число / Основание); + КонецЦикла; + + Пока СтрДлина(Результат) < Длина Цикл + Результат = "0" + Результат; + КонецЦикла; + + Возврат Результат; + КонецФункции + #КонецЕсли #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index eb89d6788..be6dc7f9e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -71,14 +71,15 @@ Для Каждого Набор Из Модуль.НаборыТестов Цикл - ЗаписатьНабор(ЗаписьXML, Набор, Номер); + ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер); Номер = Номер + 1; КонецЦикла; КонецЦикла; - ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДата())); + Окружение = ЮТест.Окружение(); + ЗаписатьСвойства(ЗаписьXML, Окружение); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); @@ -172,11 +173,14 @@ КонецЕсли; + ЗаписатьСвойства(ЗаписьXML, Новый Структура, РезультатТеста.Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); КонецПроцедуры Процедура ЗаписатьОшибку(ЗаписьXML, ОписаниеОшибки) + Сообщение = СообщениеОбОшибке(ОписаниеОшибки); ЗаписьXML.ЗаписатьНачалоЭлемента("error"); Если Сообщение <> Неопределено Тогда @@ -192,9 +196,10 @@ КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); + КонецПроцедуры -Процедура ЗаписатьНабор(ЗаписьXML, Набор, Номер) +Процедура ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер) КоличествоТестов = 0; КоличествоПропущенных = 0; @@ -226,7 +231,7 @@ ЗаписьXML.ЗаписатьАтрибут("failures", XMLСтрока(КоличествоУпавших)); ЗаписьXML.ЗаписатьАтрибут("timestamp", XMLСтрока(ЮТОбщий.МестноеВремяПоВременнойМетке(Набор.ДатаСтарта))); ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(ЮТОбщий.ПродолжительностьВСекундах(Набор.Длительность))); - ЗаписьXML.ЗаписатьАтрибут("package", Набор.МетаданныеМодуля.Расширение); + ЗаписьXML.ЗаписатьАтрибут("package", Модуль.Метаданные.Расширение); ЗаписьXML.ЗаписатьАтрибут("context", Набор.Режим); Для Каждого ОписаниеОшибки Из Набор.Ошибки Цикл @@ -234,12 +239,12 @@ КонецЦикла; Для Каждого РезультатТеста Из Набор.Тесты Цикл - ЗаписатьТест(ЗаписьXML, РезультатТеста); - КонецЦикла; - ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим)); + Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги); + ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим), Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); // testsuite КонецПроцедуры @@ -328,7 +333,11 @@ КонецФункции -Процедура ЗаписатьСвойства(ЗаписьXML, Свойства) +Процедура ЗаписатьСвойства(ЗаписьXML, Свойства, Теги = Неопределено) + + Если НЕ ЗначениеЗаполнено(Свойства) И НЕ ЗначениеЗаполнено(Теги) Тогда + Возврат; + КонецЕсли; ЗаписьXML.ЗаписатьНачалоЭлемента("properties"); @@ -339,8 +348,27 @@ ЗаписьXML.ЗаписатьКонецЭлемента(); // property КонецЦикла; + ЗаписатьТеги(ЗаписьXML, Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); // properties КонецПроцедуры +Процедура ЗаписатьТеги(ЗаписьXML, НаборТегов) + + Если НЕ ЗначениеЗаполнено(НаборТегов) Тогда + Возврат; + КонецЕсли; + + УникальныеТеги = ЮТСтроки.УникальныеСтроки(НаборТегов); + + Для Каждого Тег Из УникальныеТеги Цикл + ЗаписьXML.ЗаписатьНачалоЭлемента("property"); + ЗаписьXML.ЗаписатьАтрибут("name", "tag"); + ЗаписьXML.ЗаписатьАтрибут("value", ЗначениеВСтрокуjUnit(Тег)); + ЗаписьXML.ЗаписатьКонецЭлемента(); // property + КонецЦикла; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 5091b1bab..203bf989c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -89,10 +89,10 @@ Иначе ДанныеОтчета.Записать(ИмяФайлаОтчета); КонецЕсли; + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); КонецЕсли; - ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); - КонецПроцедуры Процедура ПодготовитьИмяФайлаОтчета(ПараметрыФормирования, Обработчик) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..bab91f8e9 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,28 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция УникальныеТеги(Модуль, Набор, РезультатТеста) Экспорт + + Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги, РезультатТеста.Теги); + Возврат ЮТСтроки.УникальныеСтроки(Теги); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..892ace809 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,11 @@ + + + ЮТОтчетСлужебныйКлиентСервер + + ru + Отчет служебный клиент сервер + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4fc92c72f..f48dbde80 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -36,7 +36,7 @@ Клиентские = Истина; #КонецЕсли - Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские); + Возврат ЮТСлужебныйПовторногоИспользования.ОбработчикиСобытий(Подсистема, Серверные, Клиентские); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 56697ddff..6ca927c97 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -34,6 +34,9 @@ КонецЦикла; + // Изначально планировалось на основе состава подсистем, но он не позволяет задать четкий порядок элементов. + ПриоритизироватьОбработчикиСобытий(ГруппаОбработчиков, Модули); + Возврат Модули; КонецФункции @@ -103,4 +106,24 @@ КонецФункции +Процедура ПриоритизироватьОбработчикиСобытий(ГруппаОбработчиков, Модули) + + Если ГруппаОбработчиков = "ИсполнениеТестов" Тогда + Порядок = "ЮТЛогированиеСлужебный, ЮТИсполнительСлужебныйКлиент, ЮТКонтекстИсполненияСлужебныйКлиентСервер"; + Иначе + Возврат; + КонецЕсли; + + ЭлементыПорядка = ЮТКоллекции.ОбратныйПорядок(ЮТСтроки.РазделитьСтроку(Порядок, ",")); + + Для Каждого Элемент Из ЭлементыПорядка Цикл + Индекс = Модули.Найти(Элемент); + Если Индекс <> Неопределено Тогда + Модули.Удалить(Индекс); + Модули.Вставить(0, Элемент); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/Module.bsl" index 3f0358a23..f80371f8d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,7 +23,9 @@ // Возвращаемое значение: // Строка - Возвращает текущую установленную локализацию Функция Локализация() Экспорт - Возврат ЮТПодражательСлужебный.Контекст().Локализация; + + Возврат ЮТПодражательСлужебный.Локализация(); + КонецФункции // Устанавливает локализацию подражателя @@ -31,7 +33,9 @@ // Параметры: // КодЯзыка - Строка - Код языка Процедура УстановитьЛокализацию(КодЯзыка) Экспорт + ЮТПодражательСлужебный.Контекст().Локализация = КодЯзыка; + КонецПроцедуры #Область Реализации @@ -41,7 +45,9 @@ // Возвращаемое значение: // CommonModule.ЮТПодражатель_Люди - Люди Функция Люди() Экспорт + Возврат ЮТПодражатель_Люди; + КонецФункции // Подражатель для компаний @@ -49,7 +55,9 @@ // Возвращаемое значение: // CommonModule.ЮТПодражатель_Компании - Компании Функция Компании() Экспорт + Возврат ЮТПодражатель_Компании; + КонецФункции // Подражатель для банков @@ -57,7 +65,9 @@ // Возвращаемое значение: // CommonModule.ЮТПодражатель_Банки - Банки Функция Банки() Экспорт + Возврат ЮТПодражатель_Банки; + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" index 63270c715..a9d810649 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" @@ -24,7 +24,7 @@ // Параметры: // БИК - Строка - БИК банка // КодВалюты - Строка - Код валюты -// ЮрЛицо - Булево - Генерация счета юрлица, иначе физ лица +// ЮрЛицо - Булево - Генерация счета юр. лица, иначе физ. лица // // Возвращаемое значение: // Строка - Номер счета diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" index 95dafc0f4..4d361d021 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" @@ -101,7 +101,7 @@ КонецФункции -// Формирует случаный ИНН физического лица +// Формирует случайный ИНН физического лица // // Возвращаемое значение: // Строка @@ -109,16 +109,16 @@ Возврат ЮТТестовыеДанные.Подражатель().Компании().ИНН(, Истина); КонецФункции -// Формирует случаный СНИЛС. +// Формирует случайный СНИЛС. // https://ru.wikipedia.org/wiki/Контрольное_число // Возвращаемое значение: // Строка Функция СНИЛС() Экспорт ЧастиСнилс = Новый Массив(); - ФорматаяСтрока = "ЧЦ=3; ЧН=000; ЧВН=;"; - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(100, 999), ФорматаяСтрока)); - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматаяСтрока)); - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматаяСтрока)); + ФорматЧисла = "ЧЦ=3; ЧН=000; ЧВН=;"; + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(100, 999), ФорматЧисла)); + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматЧисла)); + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматЧисла)); ИтогоСтрокой = СтрСоединить(ЧастиСнилс, ""); ДлинаОсновнойЧасти = СтрДлина(ИтогоСтрокой); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index c4fac2939..3a3f53be4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -18,6 +18,14 @@ #Область СлужебныйПрограммныйИнтерфейс +Функция Локализация() Экспорт + + Контекст = Контекст(); + + Возврат ?(ЗначениеЗаполнено(Контекст.Локализация), Контекст.Локализация, ЮТОкружение.ЛокальИнтерфейса()); + +КонецФункции + // Получает список из словаря с учетом установленной локализации // // Параметры: @@ -28,8 +36,10 @@ // Возвращаемое значение: // ФиксированныйМассив из Строка Функция Словарь(ИмяРеализации, ИмяСловаря, Знач КодЛокализации = Неопределено) Экспорт + КодЛокализации = ?(КодЛокализации = Неопределено, ЮТПодражатель.Локализация(), КодЛокализации); Возврат ЮТПодражательСлужебныйПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации); + КонецФункции // Случайное значение из словаря. @@ -40,27 +50,30 @@ // Возвращаемое значение: // - Строка Функция СлучайноеЗначениеИзСловаря(Словарь) Экспорт + Возврат Словарь.Получить(ЮТТестовыеДанные.СлучайноеЧисло(0, Словарь.ВГраница())); + КонецФункции +// Обработчик события "ИнициализацияКонтекста" +// +// Параметры: +// ДанныеКонтекста - Структура +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + + ДанныеКонтекста.Вставить(КлючКонтекста(), НовыйКонтекст()); + +КонецПроцедуры + // Контекст. // // Возвращаемое значение: // см. НовыйКонтекст Функция Контекст() Экспорт + //@skip-check constructor-function-return-section Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); -КонецФункции - -// Инициализирует подражатель -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция Инициализировать() Экспорт - Если Контекст() = Неопределено Тогда - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); - КонецЕсли; - Возврат ЮТПодражатель; + КонецФункции #КонецОбласти @@ -68,20 +81,23 @@ #Область СлужебныеПроцедурыИФункции Функция КлючКонтекста() + Возврат "Подражатель"; + КонецФункции // Новый контекст. // // Возвращаемое значение: // Структура - Новый контекст: -// * Локализация - см. ЮТЛокальСлужебный.ЛокальИнтерфейса +// * Локализация - см. ЮТОкружение.ЛокальИнтерфейса Функция НовыйКонтекст() - + Описание = Новый Структура; - Описание.Вставить("Локализация", ЮТЛокальСлужебный.ЛокальИнтерфейса()); + Описание.Вставить("Локализация", ""); + Возврат Описание; - + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index fae40b312..d8291d0d2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -29,10 +29,10 @@ Если Метаданные.ОбщиеМакеты.Найти(Кодификатор) = Неопределено Тогда ВызватьИсключение СтрШаблон("Словарь с именем (%1) не найден", Кодификатор); КонецЕсли; - + Макет = ПолучитьОбщийМакет(Кодификатор); Возврат СтрРазделить(Макет.ПолучитьТекст(), Символы.ПС, Ложь); - + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index d6721454f..6f827cdc8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -42,7 +42,7 @@ КонецФункции // Устанавливает имя свойства, все последующие проверки будут относится к нему. -// Это алиас для см. Реквизит +// Это псевдоним (алиас) для см. Реквизит // // Параметры: // ИмяСвойства - Строка - Имя реквизита diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 53034b530..bdfd835c2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -25,7 +25,7 @@ // Предикаты - Массив Из см. ЮТФабрика.ВыражениеПредиката // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено -// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры +// - Структура - Параметры сравнения значений, для разных выражений используются свои параметры // // Возвращаемое значение: // см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index a53eeffb8..17a6097bb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -85,7 +85,7 @@ Функция ФайлыПроектаРабочийКаталог() - КлючБазы = ЮТОбщий.ХешMD5(СтрокаСоединенияИнформационнойБазы()); + КлючБазы = ЮТОбщийСлужебный.ХешMD5(СтрокаСоединенияИнформационнойБазы()); Возврат ЮТФайлы.ОбъединитьПути(КаталогВременныхФайлов(), КлючБазы, "КаталогПроекта"); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index c2ad89f6b..bc1527e52 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -18,7 +18,7 @@ #Область ПрограммныйИнтерфейс -// Добавляет пяснение возникшей ошибки, которое будет довлено в отчет. +// Добавляет пояснение возникшей ошибки, которое будет добавлено в отчет. // Используется перед выбросом исключения, чтобы добавить полезной информации об ошибке, но при этом не ломать стек. // // Параметры: @@ -29,6 +29,20 @@ КонецПроцедуры +// Фрмирует сообщение об ошибки. +// +// Параметры: +// Описание - Строка - Префикс текста ошибки +// Ошибка - Строка, ИнформацияОбОшибке - Ошибка +// +// Возвращаемое значение: +// Строка +Функция ПредставлениеОшибки(Описание, Ошибка = Неопределено) Экспорт + + Возврат ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки(Описание, Ошибка); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index a68985960..db58b8ae2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -163,13 +163,15 @@ КонецПроцедуры -Функция ПредставлениеОшибки(Знач Описание, Знач Ошибка) Экспорт +Функция ПредставлениеОшибки(Описание, Ошибка) Экспорт Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда - Ошибка = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка); + ПредставлениеОшибки = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка); + Иначе + ПредставлениеОшибки = Ошибка; КонецЕсли; - Возврат СтрШаблон("%1: %2", Описание, Ошибка); + Возврат ЮТСтроки.ДобавитьСтроку(Описание, ПредставлениеОшибки, ": "); КонецФункции @@ -681,7 +683,7 @@ Тексты = Новый Структура("МетодНеОбнаружен, МногоПараметров, МалоПараметров"); - Если ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы() Тогда + Если ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы() Тогда Тексты.МетодНеОбнаружен = СтрШаблон("Object method not found (%1)", ИмяМетода); Тексты.МногоПараметров = "Too many actual parameters"; Тексты.МалоПараметров = "Not enough actual parameters"; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index 01a195787..902f02933 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -91,4 +91,17 @@ КонецФункции +Функция ВерсияПлатформы() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + Возврат СистемнаяИнформация.ВерсияПриложения; + +КонецФункции + +Функция ОбработчикиСобытий(Знач Подсистема, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт + + Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cc1d3aeea..151e965b4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -63,40 +63,46 @@ КонецПроцедуры +// Вызывается при сборе информации об окружении на клиенте. +// Позволяет дополнить описание окружения своими данными +// +// Параметры: +// ОписаниеОкружения - см. ЮТФабрика.НовоеОписаниеОкружения +Процедура СборИнформацииОбОкружении(ОписаниеОкружения) Экспорт + + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеОкружения); + ВызватьПодключаемыйОбработчикСобытия("СборИнформацииОбОкружении", "Инициализация", Параметры); + +КонецПроцедуры + #КонецОбласти #Область СобытияИсполненияТестов -// Обработчик события "ПередВсемиТестамиМодуля" +// Вызов события "ПередВсемиТестамиМодуля" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Процедура ПередВсемиТестамиМодуля(ТестовыйМодуль) Экспорт - УстановитьКонтекстИсполнения(ТестовыйМодуль); - ЮТКонтекстСлужебный.УстановитьКонтекстМодуля(); - ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); ВызватьОбработкуСобытияИсполненияТестов("ПередВсемиТестами", ОписаниеСобытия); КонецПроцедуры -// Обработчик события "ПередТестовымНабором" +// Вызов события "ПередТестовымНабором" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля // Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов Процедура ПередТестовымНабором(ТестовыйМодуль, Набор) Экспорт - УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор); - ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов(); - ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); ВызватьОбработкуСобытияИсполненияТестов("ПередТестовымНабором", ОписаниеСобытия); КонецПроцедуры -// Обработчик события "ПередКаждымТестом" +// Вызов события "ПередКаждымТестом" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля @@ -104,20 +110,12 @@ // Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест) Экспорт - // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом - ЮТКонтекстСлужебный.УстановитьКонтекстТеста(); - ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); - - #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - ПолучитьСообщенияПользователю(Истина); - #КонецЕсли - - ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия); + ВызватьОбработкуСобытияИсполненияТестов("ПередКаждымТестом", ОписаниеСобытия, "ПередКаждымТестом, ПередТестом"); КонецПроцедуры -// Обработчик события "ПослеКаждогоТеста" +// Вызов события "ПослеКаждогоТеста" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля @@ -126,14 +124,11 @@ Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); - - ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); - - УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор); + ВызватьОбработкуСобытияИсполненияТестов("ПослеКаждогоТеста", ОписаниеСобытия, "ПослеКаждогоТеста, ПослеТеста"); КонецПроцедуры -// Обработчик события "ПослеТестовогоНабора" +// Вызов события "ПослеТестовогоНабора" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля @@ -143,11 +138,9 @@ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); ВызватьОбработкуСобытияИсполненияТестов("ПослеТестовогоНабора", ОписаниеСобытия); - УстановитьКонтекстИсполнения(ТестовыйМодуль); - КонецПроцедуры -// Обработчик события "ПослеВсехТестовМодуля" +// Вызов события "ПослеВсехТестовМодуля" // // Параметры: // ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля @@ -156,19 +149,23 @@ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); ВызватьОбработкуСобытияИсполненияТестов("ПослеВсехТестов", ОписаниеСобытия); - УстановитьКонтекстИсполнения(); - КонецПроцедуры // Перед выполнением тестов. // // Параметры: // ИсполняемыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля -Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт +// Отказ - Булево - Отказ от загрузки тестов из модуля +Процедура ПередВыполнениемТестов(ИсполняемыеМодули, Отказ) Экспорт - Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули, Отказ); ВызватьПодключаемыйОбработчикСобытия("ПередВыполнениемТестов", "ИсполнениеТестов", Параметры); + Если Параметры[1] Тогда + Отказ = Истина; + ЮТЛогирование.Предостережение("Выполнение тестовых сценариев отменено"); + КонецЕсли; + КонецПроцедуры // После выполнения тестов. @@ -186,21 +183,29 @@ #Область СобытияЗагрузкиТестов -// Обработка события "ПередЧтениеСценариев" +// Вызов события "ПередЧтениеСценариев" // Вызывается перед загрузкой тестов. -Процедура ПередЧтениеСценариев() Экспорт +// +// Параметры: +// Отказ - Булево - Отказ от загрузки тестов из модуля +Процедура ПередЧтениеСценариев(Отказ) Экспорт - Параметры = Новый Массив(); + Параметры = ЮТКоллекции.ЗначениеВМассиве(Отказ); ВызватьПодключаемыйОбработчикСобытия("ПередЧтениеСценариев", "ЗагрузкаТестов", Параметры); + Если Параметры[0] Тогда + Отказ = Истина; + ЮТЛогирование.Предостережение("Загрузка тестовых сценариев отменена"); + КонецЕсли; + КонецПроцедуры -// Обработчик события "ПередЧтениемСценариевМодуля" +// Вызов события "ПередЧтениемСценариевМодуля" // Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`). // Позволяет настроить базовые параметры перед чтением настроек тестов модуля. // // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля); @@ -211,16 +216,15 @@ // После чтения сценариев модуля. // Позволяет настроить/обработать параметры загруженных настроек тестов модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля -Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт +// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеТестовогоМодуля); ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариевМодуля", "ЗагрузкаТестов", Параметры); КонецПроцедуры -// Обработка события "ПослеЧтенияСценариев" +// Вызов события "ПослеЧтенияСценариев" // Параметры: // Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Процедура ПослеЧтенияСценариев(Сценарии) Экспорт @@ -230,7 +234,7 @@ КонецПроцедуры -// Обработка события "ПослеФормированияИсполняемыхНаборовТестов" +// Вызов события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: // ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт @@ -240,83 +244,132 @@ КонецПроцедуры +// Вызов события "ФильтрацияТестов_ПроверкаМодуля" +// Вызывается при поиске тестовых модулей. +// Позволяет отфильтровать "лишние" тестовые модули +// +// Параметры: +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля +// Отказ - Булево - Отказ от загрузки тестов из модуля +Процедура ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ) Экспорт + + Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, Отказ); + ВызватьПодключаемыйОбработчикСобытия("ФильтрацияТестов_ПроверкаМодуля", "ЗагрузкаТестов", Параметры); + + Если Параметры[1] Тогда + Отказ = Истина; + ЮТЛогирование.Отладка(СтрШаблон("Загрузка модуля `%1`отклонена при обработке события", МетаданныеМодуля.Имя)); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #КонецОбласти #Область СлужебныеПроцедурыИФункции -Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт - - Уровни = ЮТФабрика.УровниИсполнения(); - КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения(); +Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля = Неопределено) - КонтекстИсполнения.Модуль = ТестовыйМодуль; - КонтекстИсполнения.Набор = Набор; - КонтекстИсполнения.Тест = Тест; + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); - Если Тест <> Неопределено Тогда - КонтекстИсполнения.Уровень = Уровни.Тест; - ИначеЕсли Набор <> Неопределено Тогда - КонтекстИсполнения.Уровень = Уровни.НаборТестов; - ИначеЕсли ТестовыйМодуль <> Неопределено Тогда - КонтекстИсполнения.Уровень = Уровни.Модуль; + Если ЭтоСобытиеПеред(ИмяСобытия) Тогда + + Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); +#Если Клиент Тогда + СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); + ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); +#КонецЕсли + ВызватьОбработчикиТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля); + Иначе - КонтекстИсполнения.Уровень = Неопределено; + + ВызватьОбработчикиТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля); + Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); +#Если Клиент Тогда + СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); + ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); +#КонецЕсли + КонецЕсли; + ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); + КонецПроцедуры -Процедура ВызватьОбработкуСобытийИсполненияТестов(События, ОписаниеСобытия) +Функция ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия) - Для ы = 0 По События.ВГраница() Цикл - - ИмяСобытия = События[ы]; - ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия)); - - Если ПропуститьОбработчикТестовогоМодуля Тогда - Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); - Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); - ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); - Иначе - ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); - КонецЕсли; - - КонецЦикла; + Параметры = Новый Массив(4); + Параметры[0] = ИмяСобытия; -КонецПроцедуры + Если ОписаниеСобытия.Модуль <> Неопределено Тогда + Параметры[1] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ОписаниеСобытия.Модуль); + КонецЕсли; + + Если ОписаниеСобытия.Набор <> Неопределено Тогда + Параметры[2] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор); + КонецЕсли; + + Если ОписаниеСобытия.Тест <> Неопределено Тогда + Параметры[3] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор, ОписаниеСобытия.Тест); + КонецЕсли; + + Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТСобытияСлужебный", "СерверныйВызовОбработкиСобытияИсполненияТестов", Параметры); + +КонецФункции -Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия) +#Если Сервер Тогда +Функция СерверныйВызовОбработкиСобытияИсполненияТестов(ИмяСобытия, + ИдентификаторМодуля = Неопределено, + ИдентификаторНабора = Неопределено, + ИдентификаторТеста = Неопределено) Экспорт - Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); + Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов(); + ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(Неопределено); - Если ЭтоСобытиеПеред(ИмяСобытия) Тогда - Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); - ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия); - Иначе - ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия); - Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); + Если ИдентификаторМодуля <> Неопределено Тогда + ОписаниеСобытия.Модуль = Хранилище[ИдентификаторМодуля]; КонецЕсли; - ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); + Если ИдентификаторНабора <> Неопределено Тогда + ОписаниеСобытия.Набор = Хранилище[ИдентификаторНабора]; + КонецЕсли; -КонецПроцедуры + Если ИдентификаторТеста <> Неопределено Тогда + ОписаниеСобытия.Тест = Хранилище[ИдентификаторТеста]; + КонецЕсли; + + Результат = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия)); + + Возврат Результат; + +КонецФункции +#КонецЕсли -Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия) +Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия) Экспорт + + ОбработчикиСобытий = ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема); + + Если ЭтоСобытиеПосле(ИмяСобытия) Тогда + ОбработчикиСобытий = ЮТКоллекции.ОбратныйПорядок(ОбработчикиСобытий); + КонецЕсли; Ошибки = Новый Массив(); - Для Каждого ИмяМодуля Из ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема) Цикл + Для Каждого ИмяМодуля Из ОбработчикиСобытий Цикл Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда - ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия); - ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, ПолноеИмяМетода)); - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия); + ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2.%3`", ИмяСобытия, ИмяМодуля, ИмяСобытия)); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ИмяМодуля, ИмяСобытия, ПараметрыСобытия); + Если Ошибка <> Неопределено Тогда + ЮТЛогирование.Ошибка(ЮТРегистрацияОшибок.ПредставлениеОшибки("Ошибка обработки события", Ошибка)); + КонецЕсли; Если Ошибка <> Неопределено Тогда Ошибки.Добавить(Ошибка); КонецЕсли; + КонецЕсли; КонецЦикла; @@ -325,41 +378,48 @@ КонецФункции -// Вызвать обработчик модуля. -// -// Параметры: -// ИмяСобытия - Строка - Имя вызываемого метода обработки события -// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов -// -Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия) +Процедура ВызватьОбработчикиТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикиСобытия) - ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия); - Если ОбработчикСобытияПереопределен Тогда - ИмяСобытия = ПереопределенноеИмяСобытия(ИмяСобытия); + ОбработчикСобытия = ПереопределенноеИмяСобытия(ИмяСобытия); + + Если ЗначениеЗаполнено(ОбработчикСобытия) Тогда + ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикСобытия, Истина); + ИначеЕсли НЕ ЗначениеЗаполнено(ОбработчикиСобытия) Тогда + ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ИмяСобытия, Ложь); + Иначе + Для Каждого ОбработчикСобытия Из ЮТСтроки.РазделитьСтроку(ОбработчикиСобытия, ",") Цикл + ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикСобытия, Ложь); + КонецЦикла; КонецЕсли; - ИмяМодуля = ОписаниеСобытия.Модуль.МетаданныеМодуля.Имя; +КонецПроцедуры + +Процедура ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикСобытия, ОбработчикСобытияПереопределен) + + ИмяМодуля = ОписаниеСобытия.Модуль.Метаданные.Имя; - ЧастиКоманды = СтрРазделить(ИмяСобытия, "."); + ЧастиКоманды = СтрРазделить(ОбработчикСобытия, "."); Если ЧастиКоманды.Количество() = 2 Тогда ИмяМодуля = ЧастиКоманды[0]; - ИмяСобытия = ЧастиКоманды[1]; + ИмяМетода = ЧастиКоманды[1]; + Иначе + ИмяМетода = ОбработчикСобытия; КонецЕсли; Ошибки = Новый Массив(); - Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия); - Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда + Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода) Тогда - ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, Команда)); - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда); + ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2.%3`", ИмяСобытия, ИмяМодуля, ИмяМетода)); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ИмяМодуля, ИмяМетода); Если Ошибка <> Неопределено Тогда + ЮТЛогирование.Ошибка(ЮТРегистрацияОшибок.ПредставлениеОшибки("Ошибка обработки события", Ошибка)); Ошибки.Добавить(Ошибка); КонецЕсли; ИначеЕсли ОбработчикСобытияПереопределен Тогда - ТекстИсключения = СтрШаблон("Не найден обработчик тестового модуля %1", Команда); + ТекстИсключения = СтрШаблон("Не найден обработчик тестового модуля %1.%2", ИмяМодуля, ИмяМетода); ВызватьИсключение ТекстИсключения; КонецЕсли; @@ -376,12 +436,6 @@ КонецПроцедуры -Функция ОбработчикСобытияПереопределен(ИмяСобытия) - - Возврат ЗначениеЗаполнено(ПереопределенноеИмяСобытия(ИмяСобытия)); - -КонецФункции - Функция ПереопределенноеИмяСобытия(ИмяСобытия) Если ЭтоСобытиеПеред(ИмяСобытия) Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 486a36b84..8833c438e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -60,7 +60,7 @@ #Область СлужебныеПроцедурыИФункции // https://github.com/vanessa-opensource/add -// портирован из Functest +// перенесен из Functest Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); @@ -79,7 +79,7 @@ Колонки = НоваяТаблицаЗначений.Колонки; ТипСтрока = Новый ОписаниеТипов("Строка"); - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимоcть колонки определяется по формату первой строки + // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки УчитываемыеКолонки = Новый Массив; Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 3729f5d9d..adbdf3349 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -393,7 +393,7 @@ КонецФункции -#Область РеализацияПредикатор +#Область РеализацияПредикатов Процедура ПроверитьВыражениеПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) Экспорт @@ -413,7 +413,7 @@ // СтатусПроверки - см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено -// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры +// - Структура - Параметры сравнения значений, для разных выражений используются свои параметры Процедура ВызватьОбработчикПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) // BSLLS:CognitiveComplexity-off diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index cff826070..d92bb0e09 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -210,6 +210,20 @@ КонецФункции +// Выполняет сравнение версий +// +// Параметры: +// ПроверяемаяВерсия - Строка - Проверяемая версия +// БазоваяВерсия - Строка - Базовая версия, с которой происходит сравнение +// +// Возвращаемое значение: +// Булево - Проверяемая версия больше базовой +Функция ВерсияБольше(ПроверяемаяВерсия, БазоваяВерсия) Экспорт + + Возврат СравнитьВерсии(ПроверяемаяВерсия, БазоваяВерсия) > 0; + +КонецФункции + // Проверяет, что переданное значение является строковым представлением уникального идентификатора // // Параметры: @@ -222,7 +236,7 @@ Если ТипЗнч(Значение) <> Тип("Строка") Тогда Возврат Ложь; КонецЕсли; - + Шаблон = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; Если СтрДлина(Шаблон) <> СтрДлина(Значение) Тогда @@ -232,7 +246,7 @@ Для Позиция = 1 По СтрДлина(Значение) Цикл КодСимволаШаблона = КодСимвола(Шаблон, Позиция); КодСимволаЗначения = КодСимвола(Значение, Позиция); - + Если КодСимволаШаблона = 88 // X И ((КодСимволаЗначения < 48 ИЛИ КодСимволаЗначения > 57) // 0..9 И (КодСимволаЗначения < 97 ИЛИ КодСимволаЗначения > 102) // a..f @@ -243,7 +257,71 @@ КонецЦикла; Возврат Истина; + +КонецФункции + +// Из набора строк формирует набор уникальных строк. +// Сравнение происходит без учета регистра. +// +// Параметры: +// НеУникальныеСтроки - Массив Из Строка +// +// Возвращаемое значение: +// Массив Из Строка - Уникальные строки +Функция УникальныеСтроки(НеУникальныеСтроки) Экспорт + + Если НЕ ЗначениеЗаполнено(НеУникальныеСтроки) Тогда + Возврат НеУникальныеСтроки; + КонецЕсли; + + Хэш = Новый Соответствие(); + + Результат = Новый Массив; + + Для Каждого Строка Из НеУникальныеСтроки Цикл + Ключ = НРег(Строка); + Если Хэш[Ключ] = Неопределено Тогда + Результат.Добавить(Строка); + Хэш.Вставить(Ключ, 1); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Проверяет переданную строку, является ли она подходщим именем переменной - должна соответствовать требованиям к именам переменных +// +// Параметры: +// ИмяПеременной - Строка +// +// Возвращаемое значение: +// Булево - Это валидное имя переменной +Функция ЭтоВалидноеИмяПеременной(ИмяПеременной) Экспорт + + Попытка + Проверка = Новый Структура; + Проверка.Вставить(ИмяПеременной); + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; + +КонецФункции +// Получает строку на языке платформы из набора строк на разных языках платформы. +// +// Параметры: +// СтрокаНаРазныхЯзыках - Строка - Строки на разных языках, разделенные символом ";" (точка с запятой). +// Строка на одном языке состоит из кода языка, указанного в метаданных, символа "=" (равно) и собственно строки текста на данном языке +// в одинарных кавычках, двойных кавычках или без кавычек (когда указывается только один язык). +// +// Возвращаемое значение: +// Строка - Локализованное сообщение платформы +Функция ЛокализованноеСообщениеПлатформы(СтрокаНаРазныхЯзыках) Экспорт + + Возврат НСтр(СтрокаНаРазныхЯзыках, ЮТОкружение.ЛокальПлатформы()); + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 65b7b5d3a..72fdc2768 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -37,7 +37,7 @@ КонецЕсли; Если ЗначениеЗаполнено(Наименование) Тогда - Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда + Если ЮТОкружение.ИспользуетсяАнглийскийВстроенныйЯзык() Тогда Данные.Вставить("Description", Наименование); Иначе Данные.Вставить("Наименование", Наименование); @@ -129,12 +129,7 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло"); #Иначе - Генератор = ЮТКонтекстСлужебный.ЗначениеКонтекста("ГенераторСлучайныхЧисел"); - - Если Генератор = Неопределено Тогда - Генератор = Новый ГенераторСлучайныхЧисел(); - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор); - КонецЕсли; + Генератор = ЮТТестовыеДанныеСлужебный.ГенераторСлучайныхЧисел(); Если Максимум = Неопределено Тогда Результат = Генератор.СлучайноеЧисло(Минимум); @@ -535,7 +530,7 @@ КонецФункции -// Возвращает случайное предопреленное значения объекта конфигурации. +// Возвращает случайное предопределенное значения объекта конфигурации. // // Параметры: // Менеджер - Строка - Имя менеджера. Примеры: "Справочники.ВидыЦен", "Справочник.ВидыЦен" @@ -877,7 +872,7 @@ // ОбщийМодуль - Подражатель Функция Подражатель() Экспорт - Возврат ЮТПодражательСлужебный.Инициализировать(); + Возврат ЮТПодражатель; КонецФункции @@ -930,7 +925,7 @@ // ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок Функция HTTPСервисЗапрос() Экспорт - Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда + Если ЮТОкружение.ИспользуетсяАнглийскийВстроенныйЯзык() Тогда Возврат Обработки.ЮТHTTPServiceRequest.Создать(); Иначе Возврат Обработки.ЮТHTTPСервисЗапрос.Создать(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8b4727d26..94066f5a0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -40,11 +40,11 @@ ИначеЕсли Тип = Тип("Строка") Тогда - Значение = ФикстивнаяСтрока(ОписаниеТипа); + Значение = ФиктивнаяСтрока(ОписаниеТипа); ИначеЕсли Тип = Тип("Дата") Тогда - Значение = ФикстивнаяДата(ОписаниеТипа); + Значение = ФиктивнаяДата(ОписаниеТипа); ИначеЕсли Тип = Тип("Булево") Тогда @@ -148,6 +148,18 @@ КонецПроцедуры +// Обработчик события "ИнициализацияКонтекста" +// +// Параметры: +// ДанныеКонтекста - Структура +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + +#Если НЕ ВебКлиент Тогда + ДанныеКонтекста.Вставить(ИмяКонтекстаГенераторСлучайныхЧисел(), Новый ГенераторСлучайныхЧисел()); +#КонецЕсли + +КонецПроцедуры + #КонецОбласти Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыСозданияОбъектов, ТаблицаЗначений) Экспорт @@ -163,6 +175,12 @@ КонецФункции +Функция ГенераторСлучайныхЧисел() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаГенераторСлучайныхЧисел()); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -227,7 +245,7 @@ КонецФункции -Функция ФикстивнаяСтрока(ОписаниеТипа) +Функция ФиктивнаяСтрока(ОписаниеТипа) Если ТипЗнч(ОписаниеТипа) <> Тип("ОписаниеТипов") Тогда Возврат ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100)); @@ -243,7 +261,7 @@ КонецФункции -Функция ФикстивнаяДата(ОписаниеТипа) +Функция ФиктивнаяДата(ОписаниеТипа) Интервал = 315360000; // 10 лет //@skip-check use-non-recommended-method @@ -251,4 +269,9 @@ КонецФункции +Функция ИмяКонтекстаГенераторСлучайныхЧисел() + + Возврат "ГенераторСлучайныхЧисел"; + +КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 2b7f8529e..fdb0efeee 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -22,7 +22,7 @@ ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); - Объект = НовыйОбъект(Менеджер, Данные, + Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); @@ -60,18 +60,17 @@ Если ДополнительныеСвойства <> Неопределено Тогда ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); КонецЕсли; - + Если УникальныйИдентификаторСсылки <> Неопределено И ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда Ссылка = Менеджер.ПолучитьСсылку(УникальныйИдентификаторСсылки); Объект.УстановитьСсылкуНового(Ссылка); КонецЕсли; Если ЭтоРегистр Тогда - ЗаполнитьНаборРегистра(Объект, Данные); Возврат Объект; - КонецЕсли; + ЗаполнитьЗначенияСвойств(Объект, Данные); Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда @@ -106,33 +105,13 @@ Ошибки = Новый Массив; + Если Привилегированно И НЕ ПривилегированныйРежим() Тогда + УстановитьПривилегированныйРежим(Истина); + КонецЕсли; + Для Каждого Ссылка Из Ссылки Цикл - ТипЗначения = ТипЗнч(Ссылка); - Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда - Продолжить; - КонецЕсли; - Если Привилегированно и НЕ ПривилегированныйРежим() Тогда - УстановитьПривилегированныйРежим(Истина); - КонецЕсли; - Попытка - Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда - Объект = Ссылка.ПолучитьОбъект(); - Если Объект <> Неопределено Тогда - Объект.Удалить(); - КонецЕсли; - Иначе - Менеджер = ЮТОбщий.Менеджер(ТипЗначения); - Запись = Менеджер.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Ссылка); - Запись.Прочитать(); - Запись.Удалить(); - КонецЕсли; - Исключение - - Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке())); - - КонецПопытки; + УдалитьСсылку(Ссылка, Ошибки); КонецЦикла; @@ -335,7 +314,7 @@ Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных) - АнглийскийЯзык = ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык(); + АнглийскийЯзык = ЮТОкружение.ИспользуетсяАнглийскийВстроенныйЯзык(); ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ"); ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код"); ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование"); @@ -350,16 +329,22 @@ КонецЕсли; КонецЕсли; - Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод) + УстановитьНовыйКод = ОписаниеОбъектаМетаданных.ОписаниеТипа.УстановитьНовыйКод + И ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод) И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный - И НЕ ЗначениеЗаполнено(Объект.Код) Тогда + И Не ЗначениеЗаполнено(Объект.Код); + + УстановитьНаименование = ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование) + И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный + И НЕ ЗначениеЗаполнено(Объект.Наименование); + + Если УстановитьНовыйКод Тогда Объект.УстановитьНовыйКод(); КонецЕсли; - Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование) - И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный - И НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда - Объект.Наименование = ЮТТестовыеДанные.СлучайнаяСтрока(); + Если УстановитьНаименование Тогда + РеквизитНаименование = ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование]; + Объект.Наименование = ЮТТестовыеДанные.Фикция(РеквизитНаименование.Тип); КонецЕсли; КонецПроцедуры @@ -429,4 +414,35 @@ КонецПроцедуры +Процедура УдалитьСсылку(Ссылка, ОшибкиОбработки) + + ТипЗначения = ТипЗнч(Ссылка); + + Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда + Возврат; + КонецЕсли; + + Попытка + + Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда + Объект = Ссылка.ПолучитьОбъект(); + Если Объект <> Неопределено Тогда + Объект.Удалить(); + КонецЕсли; + Иначе + Менеджер = ЮТОбщий.Менеджер(ТипЗначения); + Запись = Менеджер.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Ссылка); + Запись.Прочитать(); + Запись.Удалить(); + КонецЕсли; + + Исключение + + ОшибкиОбработки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке())); + + КонецПопытки; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index df772a099..1dc418e90 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -37,6 +37,21 @@ КонецФункции +// Добавляет тег к тесту/набору/модулю +// +// Параметры: +// Тег - Строка +// +// Возвращаемое значение: +// CommonModule.ЮТТесты - Тег +Функция Тег(Тег) Экспорт + + ЮТТестыСлужебный.ДобавитьТег(Тег); + + Возврат ЮТТесты; + +КонецФункции + // Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль. // Например // @@ -105,7 +120,7 @@ // ОбщийМодуль - Этот же модуль Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ИмяПараметра, Значение); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ИмяПараметра, Значение); Возврат ЮТТесты; @@ -120,7 +135,7 @@ // ОбщийМодуль - Этот же модуль Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); Возврат ЮТТесты; @@ -141,7 +156,7 @@ // ОбщийМодуль - Этот же модуль Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); Возврат ЮТТесты; @@ -156,7 +171,7 @@ // ОбщийМодуль - Этот же модуль Функция Перед(ВыполнитьПеред = "") Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); Возврат ЮТТесты; @@ -171,7 +186,7 @@ // ОбщийМодуль - Этот же модуль Функция После(ВыполнитьПосле = "") Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); Возврат ЮТТесты; @@ -350,15 +365,29 @@ КонецФункции -// Возволяет выполнить настройку зависимостей теста, тестового набора или модуля. +// Позволяет выполнить настройку зависимостей теста, тестового набора или модуля. // Возвращает модуль установки зависимостей теста. // // Возвращаемое значение: -// CommonModule +// CommonModule - Этот же модуль Функция ЗависитОт() Экспорт Возврат ЮТЗависимости; КонецФункции +// Используется для вызова произвольной функции внутри текучего интерфейса +// +// Параметры: +// _ - Произвольный +// +// Возвращаемое значение: +// CommonModule - Этот же модуль +//@skip-check bsl-variable-name-invalid +Функция Вызов(_) Экспорт + + Возврат ЮТТесты; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index dc0a45cca..3aea22cbf 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,39 +20,35 @@ Процедура ДобавитьТестовыйНабор(Имя, ТегиСтрокой) Экспорт - ИсполняемыеСценарии = СценарииМодуля(); - - Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии"; - КонецЕсли; - Если ПустаяСтрока(Имя) Тогда ВызватьИсключение "Имя тестового набора не может быть пустым"; КонецЕсли; Контекст = Контекст(); - НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); - ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор); - Контекст.ТекущийНабор = НовыйТестовыйНабор; - Контекст.ТекущийЭлемент = НовыйТестовыйНабор; + Если Контекст = Неопределено ИЛИ НЕ Контекст.Свойство("ОписаниеМодуля") Тогда + ВызватьИсключение "Не инициализирован контекст регистрации тестов"; + КонецЕсли; + + ТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); + + Контекст.ОписаниеМодуля.НаборыТестов.Добавить(ТестовыйНабор); + Контекст.ТекущийНабор = ТестовыйНабор; + Контекст.ТекущийЭлемент = ТестовыйНабор; КонецПроцедуры Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты) Экспорт + Если ПустаяСтрока(ИмяТестовогоМетода) Тогда + ВызватьИсключение "Имя тестового метода не может быть пустым"; + КонецЕсли; + Контекст = Контекст(); Набор = Контекст.ТекущийНабор; - ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор); - ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор); - - Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор"; - КонецЕсли; - - Если ПустаяСтрока(ИмяТестовогоМетода) Тогда - ВызватьИсключение "Имя тестового метода не может быть пустым"; + Если Набор = Неопределено Или НЕ Набор.Свойство("Тесты") Тогда + ВызватьИсключение "Не установлен тестовый набор. Скорее всего проблема в движке"; КонецЕсли; Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); @@ -74,7 +70,7 @@ КонецПроцедуры -Процедура НастройкаИсполнения(ИмяПараметра, Значение) Экспорт +Процедура УстановитьНастройкуИсполнения(ИмяПараметра, Значение) Экспорт Контекст = Контекст(); @@ -150,6 +146,13 @@ КонецПроцедуры +Процедура ДобавитьТег(ИмяТега) Экспорт + + ТекущийЭлемент = Контекст().ТекущийЭлемент; + ТекущийЭлемент.Теги.Добавить(ИмяТега); + +КонецПроцедуры + Функция КонтекстыВызоваКлиента() Экспорт Режимы = ЮТФабрика.КонтекстыВызова(); @@ -161,28 +164,21 @@ // // Возвращаемое значение: // см. ИсполняемыеСценарии -Функция СценарииМодуля() Экспорт - - СценарииМодуля = Контекст().ИсполняемыеСценарии; - - Результат = Новый Структура("ТестовыеНаборы, НастройкиВыполнения, Зависимости"); - Результат.ТестовыеНаборы = СценарииМодуля.ТестовыеНаборы; +Функция ОписаниеМодуля() Экспорт - // TODO Нужен рефакторинг - Результат.НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); - Результат.Зависимости = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.Зависимости); - - СценарииМодуля.НастройкиВыполнения.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль - СценарииМодуля.Зависимости.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль - - //@skip-check constructor-function-return-section - Возврат Результат; + Возврат Контекст().ОписаниеМодуля; КонецФункции +// Контекст. +// +// Возвращаемое значение: +// Структура - Контекст: +// * ОписаниеМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Функция Контекст() Экспорт - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекста()); КонецФункции @@ -191,14 +187,12 @@ Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт ИнициализироватьКонтекст(МетаданныеМодуля); - ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); КонецПроцедуры -Процедура ПослеЧтенияСценариевМодуля() Экспорт +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - Контекст = Контекст(); - ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Неопределено); КонецПроцедуры @@ -208,36 +202,27 @@ #Область СлужебныеПроцедурыИФункции -// Исполняемые сценарии. -// +// Новое описание тестового модуля. +// // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля +// // Возвращаемое значение: -// Структура - Исполняемые сценарии: -// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля -// * НастройкиВыполнения - Структура - Настройки исполнения тестов модуля -// * Зависимости - Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля -Функция ИсполняемыеСценарии(МетаданныеМодуля) - - Структура = Новый Структура; - Структура.Вставить("ТестовыеНаборы", Новый Массив); - Структура.Вставить("НастройкиВыполнения", Новый Структура); - Структура.Вставить("Зависимости", Новый Массив); +// см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Функция НовоеОписаниеТестовогоМодуля(МетаданныеМодуля) - Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); - Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию - Набор.Зависимости = Структура.Зависимости; // Общие зависимости с набором по умолчанию + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); - Структура.ТестовыеНаборы.Добавить(Набор); + НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + ОписаниеМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); - Возврат Структура; + Возврат ОписаниеМодуля; КонецФункции Функция КонтекстыВызоваПоУмолчанию() - Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля); + Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().ОписаниеМодуля.Метаданные); КонецФункции @@ -249,20 +234,6 @@ КонецФункции -Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) - - Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); - -КонецФункции - -Функция ЭтоТестовыйНабор(ТестовыйНабор) - - Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); - -КонецФункции - Функция ЭтоОписаниеТеста(Описание) Возврат ТипЗнч(Описание) = Тип("Структура") @@ -284,18 +255,17 @@ Процедура ИнициализироватьКонтекст(МетаданныеМодуля) - ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля); - Набор = ИсполняемыеСценарии.ТестовыеНаборы[0]; + ОписаниеМодуля = НовоеОписаниеТестовогоМодуля(МетаданныеМодуля); + НаборПоУмолчанию = ОписаниеМодуля.НаборыТестов[0]; Контекст = Новый Структура(); - Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля); - Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии); - Контекст.Вставить("ТекущийНабор", Набор); - Контекст.Вставить("ТекущийЭлемент", Набор); + Контекст.Вставить("ОписаниеМодуля", ОписаниеМодуля); + Контекст.Вставить("ТекущийНабор", НаборПоУмолчанию); + Контекст.Вставить("ТекущийЭлемент", ОписаниеМодуля); Контекст.Вставить("БазовыйТест", Неопределено); - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст); КонецПроцедуры @@ -313,4 +283,10 @@ КонецФункции +Функция ИмяКонтекста() + + Возврат "КонтекстРегистрацияТестов"; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index ed011211c..39759a40c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -228,4 +228,30 @@ КонецФункции +Функция НовыйТипСсылки(ОбъектМетаданных) Экспорт + + ВидТипа = ?(ЮТОкружение.ИспользуетсяРусскийВстроенныйЯзык(), "Ссылка", "Ref"); + Возврат НовыйТип(ОбъектМетаданных, ВидТипа); + +КонецФункции + +Функция НовыйТипМенеджера(ОбъектМетаданных) Экспорт + + ВидТипа = ?(ЮТОкружение.ИспользуетсяРусскийВстроенныйЯзык(), "Менеджер", "Manager"); + Возврат НовыйТип(ОбъектМетаданных, ВидТипа); + +КонецФункции + +Функция НовыйТип(ОбъектМетаданных, ВидТипа = "Ссылка") Экспорт + + Если ЮТМетаданныеСлужебный.ЭтоОписаниеОбъектаМетаданных(ОбъектМетаданных) Тогда + ИмяТипа = СтрШаблон("%1%2.%3", ОбъектМетаданных.ОписаниеТипа.Имя, ВидТипа, ОбъектМетаданных.Имя); + Иначе + ИмяТипа = СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ".", ВидТипа + "."); + КонецЕсли; + + Возврат Тип(ИмяТипа); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 7b95cb6ab..0012122af 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -53,7 +53,8 @@ // // Параметры: // ИмяМетода - Строка - Наименование метода -// ПараметрыМетода - Массив из Произвольный - Параметры вызываемого метода +// ПараметрыМетода - Массив из Произвольный - Параметры вызываемого метода. +// В качестве конструктора параметров можно использовать см. ЮТМетоды.МассивПараметров // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания @@ -828,7 +829,7 @@ // Параметры: // ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать(включать) данный текст // ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в трананзакции +// ВТранзакции - Булево - Вызов метода выполняется в транзакции // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания @@ -868,7 +869,7 @@ // ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст // - Неопределено - Ожидается, что метод отработает без выбора исключения // ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в трананзакции +// ВТранзакции - Булево - Вызов метода выполняется в транзакции // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания @@ -1589,12 +1590,6 @@ КонецЕсли; #КонецЕсли - Если Модуль <> Неопределено Тогда - ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода); - Иначе - ПолноеИмяМетода = СтрШаблон("%1", ИмяМетода); - КонецЕсли; - Результат = Новый Структура("ИсключениеВозникло, ТекстИсключения", Ложь); #Если Сервер Тогда @@ -1604,13 +1599,13 @@ КонецЕсли; НачатьТранзакцию(); // BSLLS:PairingBrokenTransaction-off BSLLS:BeginTransactionBeforeTryCatch-off - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ВыполнитьМетодМодуля(Модуль, ИмяМетода, ПараметрыМетода); ОтменитьТранзакцию(); // BSLLS:WrongUseOfRollbackTransactionMethod-off Иначе - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ВыполнитьМетодМодуля(Модуль, ИмяМетода, ПараметрыМетода); КонецЕсли; #Иначе - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль); + Ошибка = ВыполнитьМетодМодуля(Модуль, ИмяМетода, ПараметрыМетода); #КонецЕсли Если Ошибка <> Неопределено Тогда @@ -1623,6 +1618,20 @@ КонецФункции +Функция ВыполнитьМетодМодуля(Модуль, ИмяМетода, ПараметрыМетода) + + ВызоваМетодаОбъекта = Модуль <> Неопределено И ТипЗнч(Модуль) <> Тип("Строка"); + + Если ВызоваМетодаОбъекта Тогда + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодОбъектаСПерехватомОшибки(Модуль, ИмяМетода, ПараметрыМетода); + Иначе + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(Модуль, ИмяМетода, ПараметрыМетода); + КонецЕсли; + + Возврат Ошибка; + +КонецФункции + #Область ПроверкаТипов Процедура ПроверитьТипЗначения(Контекст, diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 43c64c268..75e7bce85 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -268,6 +268,56 @@ КонецФункции +// Новое описание окружения. +// +// Возвращаемое значение: +// Структура - Описание окружения: +// * Конфигурация - Строка - +// * ВерсияКонфигурации - Строка - +// * ВерсияПлатформы - Строка - +// * ИнформационнаяСреда - Строка - +// * ТестовыйДвижок - Строка - +// * ВерсияТестовогоДвижка - Строка - +// * ЛокальПлатформы - Строка - +// * ЛокальИнтерфейса - Строка - +// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386 +// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS +// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386 +// * ВстроенныйЯзык - Строка - Возможные значения: ru, en +// * ФайловаяБаза - Булево - +// * ОбычноеПриложение - Булево - +// * ВебКлиент - Булево - +// * ТолстыйКлиент - Булево - +// * ВремяЗапуска - Дата - +Функция НовоеОписаниеОкружения() Экспорт + + Окружение = Новый Структура; + Окружение.Вставить("Конфигурация", ""); + Окружение.Вставить("ВерсияКонфигурации", ""); + Окружение.Вставить("ВерсияПлатформы", ""); + Окружение.Вставить("ИнформационнаяСреда", "DEV"); + Окружение.Вставить("ТестовыйДвижок", "YAxUnit"); + Окружение.Вставить("ВерсияТестовогоДвижка", ""); + + Окружение.Вставить("ВстроенныйЯзык", ""); + + Окружение.Вставить("ОперационнаяСистемаКлиент", ""); + Окружение.Вставить("АрхитектураКлиент", ""); + + Окружение.Вставить("ОперационнаяСистемаСервер", ""); + Окружение.Вставить("АрхитектураСервер", ""); + + Окружение.Вставить("ФайловаяБаза", Ложь); + Окружение.Вставить("ОбычноеПриложение", Ложь); + Окружение.Вставить("ВебКлиент", Ложь); + Окружение.Вставить("ТолстыйКлиент", Ложь); + Окружение.Вставить("ВремяЗапуска", '00010101'); + + Возврат Окружение; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 841bccec0..069563a8c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -79,12 +79,13 @@ // Описание тестового модуля. // // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// МетаданныеМодуля - см. ОписаниеМетаданныеМодуля // НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора // // Возвращаемое значение: // Структура - Описание тестового модуля: -// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// * Метаданные - см. ОписаниеМетаданныеМодуля +// * Теги - Массив из Строка - Коллекция тегов набора // * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста @@ -93,7 +94,7 @@ Описание = БазовоеОписаниеРегистрируемогоОбъекта(); - Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля); + Описание.Вставить("Метаданные", МетаданныеМодуля); Описание.Вставить("НаборыТестов", НаборыТестов); Возврат Описание; @@ -122,9 +123,12 @@ Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Имя)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("Тесты", Новый Массив); + Если ЗначениеЗаполнено(ТегиСтрокой) Тогда + Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ","); + КонецЕсли; + Возврат Описание; КонецФункции @@ -143,7 +147,7 @@ // * Имя - Строка - Имя теста (тестового метода) // * Представление - Строка - Представление теста // * Теги - Массив из Строка - Теги теста -// * КонтекстВызова - Массив из Строка - Контексты исполнения теста +// * КонтекстВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова // * НастройкиВыполнения- Структура - Настройки исполнения теста // * Параметры - Неопределено, Массив из Произвольный - Параметры теста // * НомерВНаборе - Число - Порядковый номер теста в наборе @@ -158,11 +162,14 @@ Описание = БазовоеОписаниеРегистрируемогоОбъекта(); Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Представление)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("КонтекстВызова", КонтекстыВызова); Описание.Вставить("Параметры", Неопределено); Описание.Вставить("НомерВНаборе", 0); + Если ЗначениеЗаполнено(ТегиСтрокой) Тогда + Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ","); + КонецЕсли; + Возврат Описание; КонецФункции @@ -174,7 +181,8 @@ // // Возвращаемое значение: // Структура - Описание тестового модуля: -// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// * Метаданные - см. ОписаниеМетаданныеМодуля +// * Теги - Массив из Строка - Коллекция тегов набора // * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста @@ -183,7 +191,7 @@ Описание = БазовоеОписаниеИсполняемогоОбъекта(ТестовыйМодуль); - Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); + Описание.Вставить("Метаданные", ТестовыйМодуль.Метаданные); Описание.Вставить("НаборыТестов", Новый Массив); Возврат Описание; @@ -195,7 +203,6 @@ // Содержит данные необходимые для выполнения прогона тестов // Параметры: // НаборТестов - См. ОписаниеТестовогоНабора -// ТестовыйМодуль - См. ОписаниеТестовогоМодуля // // Возвращаемое значение: // Структура - Описание исполняемого набора тестов: @@ -204,24 +211,19 @@ // * Теги - Массив из Строка - Тэги набора // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста // * Режим - Строка - Режим исполнения набора, см. ЮТФабрика.КонтекстыВызова -// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля // * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста // * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) // * ДатаСтарта - Число - Дата запуска набора // * Длительность - Число - Продолжительность выполнения набора // * НастройкиВыполнения - Структура - Настройки исполнения теста -// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля // * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора -Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт +Функция ОписаниеИсполняемогоНабораТестов(НаборТестов) Экспорт Описание = БазовоеОписаниеИсполняемогоОбъекта(НаборТестов); Описание.Вставить("Имя", НаборТестов.Имя); Описание.Вставить("Представление", НаборТестов.Представление); - Описание.Вставить("Теги", НаборТестов.Теги); Описание.Вставить("Режим", ""); - Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); - Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); Описание.Вставить("Тесты", Новый Массив); Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0); Описание.Вставить("ДатаСтарта", 0); @@ -257,14 +259,13 @@ // * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт - ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя); + ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.Метаданные.Имя, Тест.Имя); Представление = ПредставлениеТеста(Тест); Описание = БазовоеОписаниеИсполняемогоОбъекта(Тест); Описание.Вставить("Имя", Представление); Описание.Вставить("Метод", Тест.Имя); Описание.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); - Описание.Вставить("Теги", Тест.Теги); Описание.Вставить("Режим", Режим); Описание.Вставить("ДатаСтарта", 0); Описание.Вставить("Длительность", 0); @@ -277,23 +278,20 @@ КонецФункции -// ОписаниеМодуля -// Возвращает структуру описания модуля +// Возвращает структуру описания метаданных модуля // Возвращаемое значение: -// Структура - Описание модуля: +// Структура - Метаданные модуля: // * Имя - Строка - Имя модуля -// * ПолноеИмя - Строка - Полное имя модуля // * Расширение - Строка - Имя расширения, владельца модуля // * КлиентУправляемоеПриложение - Булево - Доступность контекста // * КлиентОбычноеПриложение - Булево - Доступность контекста // * Сервер - Булево - Доступность контекста // * ВызовСервера - Булево - Доступность контекста // * Глобальный - Булево - Доступность контекста -Функция ОписаниеМодуля() Экспорт +Функция ОписаниеМетаданныеМодуля() Экспорт Описание = Новый Структура; Описание.Вставить("Имя", ""); - Описание.Вставить("ПолноеИмя", ""); Описание.Вставить("Расширение", ""); Описание.Вставить("КлиентУправляемоеПриложение", Ложь); Описание.Вставить("КлиентОбычноеПриложение", Ложь); @@ -337,6 +335,7 @@ // * Сообщение - Строка - Описание возникшей ошибки // * Стек - Строка - Стек возникшей ошибки // * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок +// * Лог - Массив из Строка // * ПроверяемоеЗначение - Произвольный - Проверяемое, фактическое значение // * ОжидаемоеЗначение - Произвольный - Ожидаемое значение Функция ОписаниеОшибкиСравнения(Сообщение) Экспорт @@ -357,11 +356,7 @@ // Сообщение - Строка // // Возвращаемое значение: -// Структура - Описание возникшей ошибки: -// * Сообщение - Строка - Описание возникшей ошибки -// * Стек - Строка - Стек возникшей ошибки -// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения -// См. ЮТФабрикаСлужебный.ТипыОшибок +// см. ОписаниеВозникшейОшибки Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт Описание = ОписаниеВозникшейОшибки(Сообщение); @@ -533,7 +528,7 @@ // КонтекстыМодуля // Возвращает коллекцию доступных контекстов выполнения модуля // Параметры: -// Модуль - См. ОписаниеМодуля +// Модуль - См. ОписаниеМетаданныеМодуля // // Возвращаемое значение: // Массив из Строка - Контексты модуля, возможные значения см. ЮТФабрика.КонтекстыВызова @@ -702,8 +697,12 @@ Функция БазовоеОписаниеРегистрируемогоОбъекта() Описание = Новый Структура(); + + Описание.Вставить("Теги", Новый Массив); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); Описание.Вставить("Зависимости", Новый Массив()); + Описание.Вставить("Ошибки", Новый Массив); Возврат Описание; @@ -713,10 +712,14 @@ Функция БазовоеОписаниеИсполняемогоОбъекта(РегистрируемыйОбъекта) Описание = Новый Структура(); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки)); + + Описание.Вставить("Теги", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Теги)); + Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(РегистрируемыйОбъекта.НастройкиВыполнения)); Описание.Вставить("Зависимости", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Зависимости)); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки)); + Возврат Описание; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 54d6fbce5..72ea0e045 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -22,107 +22,77 @@ Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); - НормализованноеИмяРасширения = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(ИмяРасширения); + НормализованноеИмяРасширения = НРег(ИмяРасширения); - Возврат НЕ Контекст.Фильтр.ЕстьФильтрРасширений ИЛИ Контекст.Фильтр.Расширения.Свойство(НормализованноеИмяРасширения); + Возврат НЕ Контекст.Фильтр.ЕстьФильтрРасширений ИЛИ Контекст.Фильтр.Расширения[НормализованноеИмяРасширения] <> Неопределено; КонецФункции -Функция ЭтоПодходящийМодуль(ОписаниеМодуля) Экспорт +Функция ЭтоПодходящийМодуль(МетаданныеМодуля) Экспорт Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); - Возврат ЗначениеЗаполнено(ОписаниеМодуля.Расширение) - И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(ОписаниеМодуля.Имя)) - И ЭтоПодходящееРасширение(ОписаниеМодуля.Расширение); + Успешно = ЗначениеЗаполнено(МетаданныеМодуля.Расширение) + И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(МетаданныеМодуля.Имя)) + И ЭтоПодходящееРасширение(МетаданныеМодуля.Расширение); + + Если Успешно Тогда + Отказ = Ложь; + ЮТСобытияСлужебный.ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ); + Если Отказ Тогда + Успешно = Ложь; + КонецЕсли; + КонецЕсли; + + Возврат Успешно; КонецФункции // Отфильтровать тестовые наборы. // // Параметры: -// ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы -// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрикаСлужебный.ОписаниеМодуля -// -// Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Отфильтрованные наборы -Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт +// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Процедура ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля) Экспорт - Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); + Фильтр = ЮТКонтекстСлужебный.КонтекстЧитателя().Фильтр; - Если НЕ Контекст.Фильтр.ЕстьФильтрТестов И НЕ Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда - Возврат ТестовыеНаборы; + Если НЕ Фильтр.ЕстьФильтрТестов И НЕ Фильтр.ЕстьФильтрКонтекстов И НЕ Фильтр.ЕстьФильтрТегов Тогда + Возврат; КонецЕсли; + НаборыТестов = ОписаниеТестовогоМодуля.НаборыТестов; + МетаданныеМодуля = ОписаниеТестовогоМодуля.Метаданные; + Результат = Новый Массив(); - Если Контекст.Фильтр.ЕстьФильтрТестов Тогда - ДоступныеТестовыеМетоды = Новый Соответствие(); - - Для Каждого ОписаниеИмениТеста Из Контекст.Фильтр.Тесты Цикл - - Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда - ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода); - - СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода]; - - Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда - ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); - ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда - ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); - ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); - ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда - СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты - ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда - СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст); - Иначе - // Если было имя теста без контекста, то будет вызов во всех контекстах - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - КонецЕсли; + СостояниеФильтрации = Новый Структура; + ДоступныеТестовыеМетоды(Фильтр, МетаданныеМодуля, СостояниеФильтрации); - Для Каждого Набор Из ТестовыеНаборы Цикл + Для Каждого Набор Из НаборыТестов Цикл + + Если НЕ ЭтоПодходящийНабор(Набор, Фильтр) Тогда + Продолжить; + КонецЕсли; ОтфильтрованныйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Набор.Имя); ЗаполнитьЗначенияСвойств(ОтфильтрованныйНабор, Набор, , "Тесты"); + ОбработатьТегиНабора(ОписаниеТестовогоМодуля, Набор, Фильтр, СостояниеФильтрации); + Для Каждого Тест Из Набор.Тесты Цикл - КонтекстыТеста = Неопределено; + ТестПодходитПодФильтр = ФильтрТестов(Тест, Фильтр, СостояниеФильтрации) + И ФильтрКонтекста(Тест, Фильтр) + И ФильтрТегов(Тест, Фильтр, СостояниеФильтрации); - Если ДоступныеТестовыеМетоды <> Неопределено Тогда - ОписаниеИмениТеста = ДоступныеТестовыеМетоды[ВРег(Тест.Имя)]; + Если ТестПодходитПодФильтр Тогда - Если ОписаниеИмениТеста = Неопределено Тогда - Продолжить; - КонецЕсли; + ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", ""); + ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест); + ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест); - КонтекстыТеста = ОписаниеИмениТеста.Контекст; - - КонецЕсли; - - Если КонтекстыТеста = Неопределено Тогда - КонтекстыТеста = Тест.КонтекстВызова; - КонецЕсли; - - Если Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда - КонтекстыТеста = ЮТКоллекции.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты); - КонецЕсли; - - Если КонтекстыТеста.Количество() = 0 Тогда - // Возможно стоит такие выводить в лог с ошибкой "по переданным параметрам контекст теста не определен" - Продолжить; КонецЕсли; - ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", ""); - ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест, , "КонтекстВызова"); - ОтфильтрованныйТест.КонтекстВызова = КонтекстыТеста; - - ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест); - КонецЦикла; Если ОтфильтрованныйНабор.Тесты.Количество() Тогда @@ -131,33 +101,30 @@ КонецЦикла; - Возврат Результат; + ОписаниеТестовогоМодуля.НаборыТестов = Результат; -КонецФункции +КонецПроцедуры -// Фильтр -// Конструктур фильтра поиска тестовых методов +// Конструктор фильтра поиска тестовых методов // // Возвращаемое значение: // Структура - Фильтр: // * Расширения - Структура - Имена расширений // * Модули - Структура - Имена модулей -// * Наборы - Массив из Строка - Имена тестовых наборов -// * Теги - Массив из Строка +// * Наборы - Соответствие из Строка - Имена тестовых наборов +// * Теги - Соответствие из Строка // * Контексты - Массив из Строка - Контексты вызова тестовых методов // * Тесты - Массив из см. ОписаниеИмениТеста - Список путей к тестовым методам -// * Пути - Массив из Строка Функция Фильтр() Экспорт //@skip-check structure-consructor-too-many-keys - Фильтр = Новый Структура("Расширения, Модули, Наборы, Теги, Контексты, Пути, Тесты"); + Фильтр = Новый Структура("Расширения, Модули, Наборы, Теги, Контексты, Тесты"); - Фильтр.Расширения = Новый Структура(); + Фильтр.Расширения = Новый Соответствие(); Фильтр.Модули = Новый Структура(); - Фильтр.Теги = Новый Массив(); + Фильтр.Теги = Новый Соответствие(); Фильтр.Контексты = Новый Массив(); - Фильтр.Наборы = Новый Массив(); - Фильтр.Пути = Новый Массив(); + Фильтр.Наборы = Новый Соответствие(); Фильтр.Тесты = Новый Массив(); //@skip-check constructor-function-return-section @@ -173,16 +140,12 @@ Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); - // TODO: Подумать в каком формате задать наборы - ИмяМодуля.Набор, Набор или другой вариант Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); - // TODO: Обработка путей в формате: Модуль.ИмяТеста, ИмяТеста - метод, параметры, контекст - // ОМ_ЮТУтверждения.Что[0: 1].Сервер, ОМ_ЮТУтверждения.Что[1: Структура].Сервер - Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); Фильтр = Фильтр(); - Фильтр.Расширения = МассивВСтруктуру(Расширения); - Фильтр.Модули = МассивВСтруктуру(Модули); + Фильтр.Расширения = МассивВСоответствие(Расширения); + Фильтр.Модули = ЮТКоллекции.МассивВСтруктуру(Модули); Если Контексты = Неопределено Тогда Фильтр.Контексты = ЮТФабрикаСлужебный.КонтекстыПриложения(); @@ -191,15 +154,11 @@ КонецЕсли; Если ЗначениеЗаполнено(Теги) Тогда - Фильтр.Теги = Теги; + Фильтр.Теги = МассивВСоответствие(Теги); КонецЕсли; Если ЗначениеЗаполнено(Наборы) Тогда - Фильтр.Наборы = Наборы; - КонецЕсли; - - Если ЗначениеЗаполнено(Пути) Тогда - Фильтр.Пути = Пути; + Фильтр.Наборы = МассивВСоответствие(Наборы); КонецЕсли; МодулиТестов = Новый Структура(); @@ -232,8 +191,10 @@ Фильтр.Вставить("ЕстьФильтрРасширений", Фильтр.Расширения.Количество() > 0); Фильтр.Вставить("ЕстьФильтрМодулей", МодулиТестов.Количество() ИЛИ Фильтр.Модули.Количество()); - Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество()); + Фильтр.Вставить("ЕстьФильтрНаборов", ЗначениеЗаполнено(Фильтр.Наборы)); + Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество() > 0 ); Фильтр.Вставить("ЕстьФильтрКонтекстов", ЗначениеЗаполнено(Фильтр.Контексты)); + Фильтр.Вставить("ЕстьФильтрТегов", ЗначениеЗаполнено(Фильтр.Теги)); ЮТКонтекстСлужебный.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр)); @@ -243,51 +204,159 @@ #Область СлужебныеПроцедурыИФункции -Функция МассивВСтруктуру(Значения) +Функция ОписаниеИмениТеста(Путь) - Результат = Новый Структура(); + Части = СтрРазделить(Путь, "."); - Если НЕ ЗначениеЗаполнено(Значения) Тогда - Возврат Результат; + Если Части.Количество() <= 1 ИЛИ Части.Количество() > 3 Тогда + ВызватьИсключение СтрШаблон("Не корректный формат пути к тесту `%1`, должен быть в формате `ИмяМодуля.ИмяМетода{.Контекст}`", Путь); КонецЕсли; - Для Каждого Значение Из Значения Цикл + Описание = Новый Структура("ИмяМодуля, ИмяМетода, Контекст"); + + Для Инд = 0 По Части.ВГраница() Цикл + Части[Инд] = СокрЛП(Части[Инд]); + КонецЦикла; + + Описание.ИмяМодуля = Части[0]; + Описание.ИмяМетода = Части[1]; + Если Части.Количество() > 2 Тогда + Описание.Контекст = Части[2]; + КонецЕсли; + + Возврат Описание; + +КонецФункции + +Процедура ДоступныеТестовыеМетоды(Фильтр, ОписаниеМодуля, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТестов Тогда + Возврат; + КонецЕсли; + + ДоступныеТестовыеМетоды = Новый Соответствие(); + + Для Каждого ОписаниеИмениТеста Из Фильтр.Тесты Цикл - НормализованноеЗначение = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(Значение); - Результат.Вставить(НормализованноеЗначение); + Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда + ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода); + + СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода]; + + Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда + ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); + ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда + ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); + ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); + ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда + СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмем из самого теста контексты + ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда + СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст); + Иначе + // Если было имя теста без контекста, то будет вызов во всех контекстах + КонецЕсли; + КонецЕсли; КонецЦикла; - Возврат Результат; + СостояниеФильтрации.Вставить("ДоступныеТестовыеМетоды", ДоступныеТестовыеМетоды); + +КонецПроцедуры + +Процедура ОбработатьТегиНабора(ОписаниеМодуля, Набор, Фильтр, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТегов Тогда + Возврат; + КонецЕсли; + + ПодходитПодФильтрТегов = ПодходитПодФильтрТегов(Фильтр, ОписаниеМодуля.Теги) Или ПодходитПодФильтрТегов(Фильтр, Набор.Теги); + СостояниеФильтрации.Вставить("ПодходитПодФильтрТегов", ПодходитПодФильтрТегов); + +КонецПроцедуры + +Функция ПодходитПодФильтрТегов(Фильтр, Теги) + + Для Каждого Тег Из Теги Цикл + + Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; КонецФункции -Функция УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(СтрокаКакКлюч) - // TODO Переработать. Не модифицировать значение - Возврат СтрЗаменить(СтрокаКакКлюч, ".", ""); +Функция ЭтоПодходящийНабор(Набор, Фильтр) + + Возврат НЕ Фильтр.ЕстьФильтрНаборов Или Фильтр.Наборы[НРег(Набор.Имя)] <> Неопределено; + КонецФункции -Функция ОписаниеИмениТеста(Путь) +Функция ФильтрТестов(Тест, Фильтр, СостояниеФильтрации) - Части = СтрРазделить(Путь, "."); + Если НЕ Фильтр.ЕстьФильтрТестов Тогда + Возврат Истина; + КонецЕсли; - Если Части.Количество() <= 1 ИЛИ Части.Количество() > 3 Тогда - ВызватьИсключение СтрШаблон("Не корректный формат пути к тесту `%1`, должен быть в формате `ИмяМодуля.ИмяМетода{.Контекст}`", Путь); + ФильтрТеста = СостояниеФильтрации.ДоступныеТестовыеМетоды[ВРег(Тест.Имя)]; + + Если ФильтрТеста = Неопределено Тогда + Возврат Ложь; КонецЕсли; - Описание = Новый Структура("ИмяМодуля, ИмяМетода, Контекст"); + Если ЗначениеЗаполнено(ФильтрТеста.Контекст) Тогда + Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, ФильтрТеста.Контекст); + КонецЕсли; - Для Инд = 0 По Части.ВГраница() Цикл - Части[Инд] = СокрЛП(Части[Инд]); + Возврат ЗначениеЗаполнено(Тест.КонтекстВызова); + +КонецФункции + +Функция ФильтрКонтекста(Тест, Фильтр) + + Если НЕ Фильтр.ЕстьФильтрКонтекстов Тогда + Возврат Истина; + КонецЕсли; + + Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, Фильтр.Контексты); + + Возврат ЗначениеЗаполнено(Тест.КонтекстВызова); + +КонецФункции + +Функция ФильтрТегов(Тест, Фильтр, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТегов Или СостояниеФильтрации.ПодходитПодФильтрТегов Тогда + Возврат Истина; + КонецЕсли; + + Для Каждого Тег Из Тест.Теги Цикл + + Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; - Описание.ИмяМодуля = Части[0]; - Описание.ИмяМетода = Части[1]; - Если Части.Количество() > 2 Тогда - Описание.Контекст = Части[2]; + Возврат Ложь; + +КонецФункции + +Функция МассивВСоответствие(Значения) + + Результат = Новый Соответствие(); + + Если НЕ ЗначениеЗаполнено(Значения) Тогда + Возврат Результат; КонецЕсли; - Возврат Описание; + Для Каждого Значение Из Значения Цикл + Результат.Вставить(НРег(Значение), Истина); + КонецЦикла; + + Возврат Результат; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3aeea5960..445277f9b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -54,7 +54,7 @@ // ПрочитатьНаборТестов // Читает набор тестов из модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля // // Возвращаемое значение: // - Неопределено - Если это не тестовый модуль @@ -62,12 +62,11 @@ Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт ЭтоТестовыйМодуль = Истина; - ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); - ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); + ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев(); - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ПолноеИмяМетода, Неопределено); Если Ошибка <> Неопределено Тогда @@ -78,8 +77,11 @@ ЭтоТестовыйМодуль = Ложь; Ошибка = Неопределено; ИначеЕсли ТипОшибки = ТипыОшибок.МалоПараметров Тогда - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ЮТКоллекции.ЗначениеВМассиве(Неопределено)); - ЮТОбщий.СообщитьПользователю("Используется устаревшая сигнатура метода `ИсполняемыеСценарии`, метод не должен принимать параметров."); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки(ПолноеИмяМетода, Неопределено, ЮТКоллекции.ЗначениеВМассиве(Неопределено)); + + Сообщение = "Используется устаревшая сигнатура метода `ИсполняемыеСценарии`, метод не должен принимать параметров."; + ЮТОбщий.СообщитьПользователю(Сообщение); + ЮТЛогирование.Предостережение(Сообщение); КонецЕсли; КонецЕсли; @@ -88,16 +90,15 @@ НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка); + + ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); ИначеЕсли ЭтоТестовыйМодуль Тогда - ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля(); - Сценарии = ЮТТестыСлужебный.СценарииМодуля(); - - ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); - ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения; - ОписаниеТестовогоМодуля.Зависимости = Сценарии.Зависимости; + ОписаниеТестовогоМодуля = ЮТТестыСлужебный.ОписаниеМодуля(); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля); + ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля); Иначе @@ -112,7 +113,7 @@ // ЭтоТестовыйМодуль // Проверяет, является ли модуль модулем с тестами // Параметры: -// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрикаСлужебный.ОписаниеМодуля +// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля // // Возвращаемое значение: // Булево - Этот модуль содержит тесты @@ -171,9 +172,7 @@ Для Каждого ОписаниеМодуля Из МодулиРасширения Цикл Если ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда - ТестовыеМодули.Добавить(ОписаниеМодуля); - КонецЕсли; КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index a07264230..6ef2156ed 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -90,7 +90,7 @@ // Умный контекст, в который можно сохранять и получать из него промежуточные данные // Этот контекст работает с см. КонтекстТеста, см. КонтекстТестовогоНабора и см. КонтекстМодуля. -// При получении значения оно ущется во всех 3 контекста поочереди. +// При получении значения выполняется поиск во всех 3 контекста поочереди. // При установке значения, оно устанавливается в текущий контекст, например, в событии перед тестовым наборов в м. КонтекстТестовогоНабора // // Возвращаемое значение: @@ -163,7 +163,7 @@ КонецФункции -// Преостанавливает поток выполнения на указанное количество секунд +// Приостанавливает поток выполнения на указанное количество секунд // // Параметры: // Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение @@ -220,4 +220,14 @@ КонецФункции +// Возвращает информацию об окружении. +// +// Возвращаемое значение: +// см. ЮТОкружение.ОписаниеОкружения +Функция Окружение() Экспорт + + Возврат ЮТОкружение.ОписаниеОкружения(); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" index 9ffce5ff6..2151a0ddc 100644 --- "a/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" +++ "b/exts/yaxunit/src/CommonTemplates/\320\256\320\242\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205/Template.txt" @@ -1,34 +1,34 @@ # Описание свойств метаданных -| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти | СтандартныеРеквизиты | -|----------------------------|-----------------------------|-----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|----------------------| -| Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + | + | -| Документ | Документы | СоздатьДокумент | | + | + | | | | + | + | -| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + | + | -| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + | + | -| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + | + | -| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + | + | -| РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | | + | -| РегистрНакопления | РегистрыНакопления | | | | + | + | + | | | + | -| РегистрБухгалтерии | РегистрыБухгалтерии | | | | + | + | + | | | + | -| РегистрРасчета | РегистрыРасчета | | | | + | + | + | | | + | -| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + | + | -| Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + | + | -| Перечисление | Перечисления | | | + | | | | | | + | -| Отчет | Отчеты | | | | + | | | | + | | -| Обработка | Обработки | | | | + | | | | + | | -| Catalog | Catalogs | СоздатьЭлемент | + | + | + | | | | + | + | -| Document | Documents | СоздатьДокумент | | + | + | | | | + | + | -| ChartOfCharacteristicTypes | ChartsOfCharacteristicTypes | СоздатьЭлемент | + | + | + | | | | + | + | -| ChartOfAccounts | ChartsOfAccounts | СоздатьСчет | | + | + | | | | + | + | -| ChartOfCalculationTypes | ChartsOfCalculationTypes | СоздатьВидРасчета | | + | + | | | | + | + | -| ExchangePlan | ExchangePlans | СоздатьУзел | | + | + | | | | + | + | -| InformationRegister | InformationRegisters | СоздатьНаборЗаписей | | | + | + | + | | | + | -| AccumulationRegister | AccumulationRegisters | | | | + | + | + | | | + | -| AccountingRegister | AccountingRegisters | | | | + | + | + | | | + | -| CalculationRegister | CalculationRegisters | | | | + | + | + | | | + | -| BusinessProcess | BusinessProcesses | СоздатьБизнесПроцесс | | + | + | | | | + | + | -| Task | Tasks | СоздатьЗадачу | | + | + | | | + | + | + | -| Enum | Enums | | | + | | | | | | + | -| Report | Reports | | | | + | | | | + | | -| DataProcessor | DataProcessors | | | | + | | | | + | | +| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | ТабличныеЧасти | ВидыСубконто | Реквизиты | УстановитьНовыйКод | +|----------------------------|-----------------------------|----------------------|--------|-----------|----------------|--------------|-----------------------------------------------------|--------------------| +| Справочник | Справочники | СоздатьЭлемент | + | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| Документ | Документы | СоздатьДокумент | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | + | Реквизиты, СтандартныеРеквизиты, ПризнакиУчета | | +| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| РегистрНакопления | РегистрыНакопления | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| РегистрБухгалтерии | РегистрыБухгалтерии | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| РегистрРасчета | РегистрыРасчета | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| Задача | Задачи | СоздатьЗадачу | | + | + | | Реквизиты, РеквизитыАдресации, СтандартныеРеквизиты | | +| Перечисление | Перечисления | | | + | | | СтандартныеРеквизиты | | +| Отчет | Отчеты | | | | + | | Реквизиты | | +| Обработка | Обработки | | | | + | | Реквизиты | | +| Catalog | Catalogs | СоздатьЭлемент | + | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| Document | Documents | СоздатьДокумент | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| ChartOfCharacteristicTypes | ChartsOfCharacteristicTypes | СоздатьЭлемент | + | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| ChartOfAccounts | ChartsOfAccounts | СоздатьСчет | | + | + | + | Реквизиты, СтандартныеРеквизиты, ПризнакиУчета | | +| ChartOfCalculationTypes | ChartsOfCalculationTypes | СоздатьВидРасчета | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| ExchangePlan | ExchangePlans | СоздатьУзел | | + | + | | Реквизиты, СтандартныеРеквизиты | + | +| InformationRegister | InformationRegisters | СоздатьНаборЗаписей | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| AccumulationRegister | AccumulationRegisters | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| AccountingRegister | AccountingRegisters | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| CalculationRegister | CalculationRegisters | | | | | | Реквизиты, Ресурсы, СтандартныеРеквизиты, Измерения | | +| BusinessProcess | BusinessProcesses | СоздатьБизнесПроцесс | | + | + | | Реквизиты, СтандартныеРеквизиты | | +| Task | Tasks | СоздатьЗадачу | | + | + | | Реквизиты, РеквизитыАдресации, СтандартныеРеквизиты | | +| Enum | Enums | | | + | | | СтандартныеРеквизиты | | +| Report | Reports | | | | + | | Реквизиты | | +| DataProcessor | DataProcessors | | | | + | | Реквизиты | | \ No newline at end of file diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 829499ea0..4a6015a05 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -20,7 +20,7 @@ 8.3.10 AddOn Russian - 24.04 + 24.05 Русский Adopted @@ -73,12 +73,14 @@ CommonModule.ЮТИсполнительСлужебныйГлобальный CommonModule.ЮТИсполнительСлужебныйКлиент CommonModule.ЮТИсполнительСлужебныйКлиентСервер + CommonModule.ЮТИсполнительСлужебныйСервер CommonModule.ЮТКоллекции CommonModule.ЮТКомпоненты CommonModule.ЮТКомпонентыСлужебныйВызовСервера CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный + CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер CommonModule.ЮТКонтекстСлужебный CommonModule.ЮТКонтекстСлужебныйВызовСервера CommonModule.ЮТКонтекстСлужебныйКлиент @@ -87,19 +89,23 @@ CommonModule.ЮТЛогированиеСлужебный CommonModule.ЮТЛогированиеСлужебныйВызовСервера CommonModule.ЮТЛогИсполненияТестаСлужебный - CommonModule.ЮТЛокальСлужебный CommonModule.ЮТМетаданные CommonModule.ЮТМетаданныеСлужебный CommonModule.ЮТМетаданныеСлужебныйВызовСервера CommonModule.ЮТМетаданныеСлужебныйПовтИсп + CommonModule.ЮТМетоды CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий + CommonModule.ЮТОбщийСлужебный CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОкружение + CommonModule.ЮТОкружениеСлужебныйКлиентСервер CommonModule.ЮТОтчетAllureСлужебный CommonModule.ЮТОтчетJSONСлужебный CommonModule.ЮТОтчетJUnitСлужебный CommonModule.ЮТОтчетСлужебный + CommonModule.ЮТОтчетСлужебныйКлиентСервер CommonModule.ЮТПараметрыЗапускаСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index bcd4f6619..1df9b1f5a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -355,7 +355,6 @@ 8.0 true - Style.NormalTextFont @@ -409,6 +408,59 @@ true + + ДеревоТестовТеги + 147 + true + true + + true + + + ДеревоТестов.Теги + + + ДеревоТестовТегиРасширеннаяПодсказка + 149 + true + true + + true + + Label + true + true + + Left + + + + ДеревоТестовТегиКонтекстноеМеню + 148 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + Style.FieldSelectionBackColor + + + ДеревоТестовГруппаПрогресс 102 @@ -1444,7 +1496,6 @@ false 12.0 - Style.NormalTextFont Left @@ -1689,6 +1740,24 @@ true + + Теги + + <key>ru</key> + <value>Теги</value> + + 131 + + String + + + + true + + + true + + ДеревоТестов.Ошибки @@ -2003,6 +2072,19 @@ TextPicture DontUse + + АдресХранилища + + String + + + + + ЗагрузитьТесты + + Boolean + + diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index f0b5e5234..a182735a5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -31,11 +31,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АдресХранилища") И ЭтоАдресВременногоХранилища(Параметры.АдресХранилища) Тогда + Если ЭтоАдресВременногоХранилища(Параметры.АдресХранилища) Тогда АдресОтчета = Параметры.АдресХранилища; КонецЕсли; - Параметры.Свойство("ЗагрузитьТесты", ЗагрузитьТестыПриОткрытии); + ЗагрузитьТестыПриОткрытии = Параметры.ЗагрузитьТесты; Для Каждого Формат Из ФорматыВыводаОшибки() Цикл Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); @@ -75,18 +75,7 @@ &НаКлиенте Процедура ДеревоТестовПриАктивизацииСтроки(Элемент) - Данные = Элементы.ДеревоТестов.ТекущиеДанные; - - Если Данные = Неопределено Тогда - Возврат; - КонецЕсли; - - Если Данные.Ошибки.Количество() Тогда - Элементы.ДеревоТестовОшибки.ТекущаяСтрока = Данные.Ошибки[0].ПолучитьИдентификатор(); - КонецЕсли; - - ОтобразитьДанныеОшибки(); - ОбновитьДоступностьСравнения(); + ПриИзмененииТекущегоЭлементаДереваТестов(); КонецПроцедуры @@ -201,8 +190,12 @@ СтрокаНабора.Состояние = Статусы.Успешно; КонецЕсли; + Если СтрокаНабора.Состояние = Статусы.Ожидание И ЗначениеЗаполнено(СтрокаНабора.Ошибки) Тогда + СтрокаНабора.Прогресс = КартинкаСтатуса(Статусы.Сломан); + Возврат СтатистикаНабора; + КонецЕсли; + СтрокаНабора.Прогресс = ГрафическоеПредставлениеСтатистики(СтатистикаНабора); - СтрокаНабора.Иконка = КартинкаСтатуса(СтрокаНабора.Состояние); СтрокаНабора.ПредставлениеВремяВыполнения = ЮТОбщий.ПредставлениеПродолжительности(СтатистикаНабора.Продолжительность); СтрокаНабора.ВремяВыполнения = СтатистикаНабора.Продолжительность; @@ -251,7 +244,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура ЗаполнитьОшибки(СтрокаДерева, ОписаниеОбъекта) СтрокаДерева.Ошибки.Очистить(); @@ -284,7 +277,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Функция НормализоватьКонтекст(Контекст) Если СтрНачинаетсяС(Контекст, "Клиент") Тогда @@ -295,7 +288,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура ИнкрементСтатистики(Статистика, Статус, Знач Статусы = Неопределено) Если Статусы = Неопределено Тогда @@ -336,7 +329,7 @@ #Область Интерфейсное -&НаСервереБезКонтекста +&НаКлиенте Функция КартинкаСтатуса(Статус) Статусы = ЮТФабрика.СтатусыИсполненияТеста(); @@ -365,7 +358,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция ПредставлениеСтатистики(Статистика) БлокиСтатистики = Новый Массив(); @@ -410,7 +403,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция ГрафическоеПредставлениеСтатистики(Статистика) Текст = БлокиСтатистики(Статистика); @@ -419,7 +412,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция БлокиСтатистики(Статистика) Блоки = Новый Массив(); @@ -457,6 +450,24 @@ КонецФункции +&НаКлиенте +Процедура ПриИзмененииТекущегоЭлементаДереваТестов() + + Данные = Элементы.ДеревоТестов.ТекущиеДанные; + + Если Данные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Данные.Ошибки.Количество() Тогда + Элементы.ДеревоТестовОшибки.ТекущаяСтрока = Данные.Ошибки[0].ПолучитьИдентификатор(); + КонецЕсли; + + ОтобразитьДанныеОшибки(); + ОбновитьДоступностьСравнения(); + +КонецПроцедуры + #КонецОбласти #Область ЗагрузкаТестов @@ -464,14 +475,9 @@ &НаКлиенте Процедура ЗагрузитьТесты() - ПараметрыЗапуска = ПараметрыЗапуска(); - - ПараметрыЗагрузки = ЮТИсполнительСлужебныйКлиент.ПараметрыИсполнения(); - ПараметрыЗагрузки.Цепочка.Добавить(Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапуска)); - ПараметрыЗагрузки.ПараметрыЗапуска = ПараметрыЗапуска; - - ЮТИсполнительСлужебныйКлиент.ВыполнитьИнициализацию(ПараметрыЗагрузки.ПараметрыЗапуска); - ЮТИсполнительСлужебныйКлиент.ОбработчикЗагрузитьТесты(Неопределено, ПараметрыЗагрузки); + ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); + Обработчик = Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапуска); + ЮТИсполнительСлужебныйКлиент.ЗагрузитьИсполняемыеТесты(ПараметрыЗапуска, Обработчик); КонецПроцедуры @@ -492,6 +498,7 @@ СтрокаНабора.ПредставлениеВремяВыполнения = ЮТОбщий.ПредставлениеПродолжительности(Набор.Длительность); СтрокаНабора.ВремяВыполнения = Набор.Длительность; СтрокаНабора.ТипОбъекта = 2; + СтрокаНабора.Теги = СтрСоединить(Набор.Теги, ", "); ЗаполнитьОшибки(СтрокаНабора, Набор); @@ -502,6 +509,7 @@ СтрокаТеста = СтрокаНабора.ПолучитьЭлементы().Добавить(); ОтобразитьРезультатТеста(СтрокаТеста, Тест, Набор); + СтрокаТеста.Теги = СтрСоединить(Тест.Теги, ", "); Тест.Вставить("Идентификатор", СтрокаТеста.ПолучитьИдентификатор()); @@ -533,34 +541,43 @@ ЮТИсполнительСлужебныйКлиент.ВыполнитьИнициализацию(ПараметрыЗапускаТестирования); ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(Модули); - ЮТСобытияСлужебный.ПередВыполнениемТестов(Модули); + ЮТИсполнительСлужебныйВызовСервера.СохранитьИнформациюОТестовыхСценариях(Модули); - Для Каждого Модуль Из Модули Цикл - - СброситьСостояниеТестирования(Модуль); - - Результат = ЮТИсполнительСлужебныйКлиент.ВыполнитьТестыМодуля(Модуль); + Отказ = Ложь; + ЮТСобытияСлужебный.ПередВыполнениемТестов(Модули, Отказ); + + Если НЕ Отказ Тогда - Для Каждого Набор Из Результат.НаборыТестов Цикл + Для Каждого Модуль Из Модули Цикл - Для Каждого Тест Из Набор.Тесты Цикл + СброситьСостояниеТестирования(Модуль); + + Результат = ЮТИсполнительСлужебныйКлиент.ВыполнитьТестыМодуля(Модуль); + + Для Каждого Набор Из Результат.НаборыТестов Цикл - Строка = ДеревоТестов.НайтиПоИдентификатору(Тест.Идентификатор); - ОтобразитьРезультатТеста(Строка, Тест, Набор); + Для Каждого Тест Из Набор.Тесты Цикл + + Строка = ДеревоТестов.НайтиПоИдентификатору(Тест.Идентификатор); + ОтобразитьРезультатТеста(Строка, Тест, Набор); + + КонецЦикла; + + Строка = ДеревоТестов.НайтиПоИдентификатору(Набор.Идентификатор); + ЗаполнитьОшибки(Строка, Набор); + ОбновитьСтатистикуНабора(Строка); КонецЦикла; - Строка = ДеревоТестов.НайтиПоИдентификатору(Набор.Идентификатор); - ОбновитьСтатистикуНабора(Строка); - КонецЦикла; - КонецЦикла; + КонецЕсли; ОбновитьОбщуюСтатистику(Ложь); ЮТКонтекстСлужебный.УдалитьКонтекст(); + ПриИзмененииТекущегоЭлементаДереваТестов(); ОповещениеПользователю("Прогон тестов завершен", "Завершено выполнение тестов"); КонецПроцедуры @@ -938,6 +955,7 @@ Блоки.Добавить(""); КонецПроцедуры + &НаСервереБезКонтекста Функция ЗаменитьСпецСимволы(Знач Стр) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index 14c0c1420..81510f37d 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -43,7 +43,8 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - ЗаполнитьДеревоТестов(); + Обработчик = Новый ОписаниеОповещения("ОтобразитьДеревоТестов", ЭтотОбъект); + ЮТИсполнительСлужебныйКлиент.ЗагрузитьЗарегистрированныеТесты(ЮТФабрика.ПараметрыЗапуска(), Обработчик); ПоддерживаемыеФорматыОтчетов = ЮТОтчетСлужебный.ПоддерживаемыеФорматыОтчетов(); Для Каждого Формат Из ПоддерживаемыеФорматыОтчетов Цикл @@ -177,25 +178,16 @@ #Область СлужебныеПроцедурыИФункции &НаКлиенте -Процедура ЗаполнитьДеревоТестов() - - ЮТКонтекстСлужебный.ИнициализироватьКонтекст(); - ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(Новый Структура("filter", Новый Структура)); - ЮТКонтекстСлужебный.УдалитьКонтекст(); +Процедура ОтобразитьДеревоТестов(ТестовыеМодули, ДополнительныеПараметры) Экспорт СтрокиРасширений = Новый Соответствие(); Для Каждого ОписаниеМодуля Из ТестовыеМодули Цикл - ИмяРасширения = ОписаниеМодуля.МетаданныеМодуля.Расширение; - - СтрокаРасширения = СтрокиРасширений[ИмяРасширения]; - Если СтрокаРасширения = Неопределено Тогда - СтрокаРасширения = ДобавитьСтрокуРасширения(ДеревоТестов, ИмяРасширения); - СтрокиРасширений.Вставить(ИмяРасширения, СтрокаРасширения); - КонецЕсли; + ИмяРасширения = ОписаниеМодуля.Метаданные.Расширение; - СтрокаМодуля = ДобавитьСтрокуМодуля(СтрокаРасширения, ОписаниеМодуля.МетаданныеМодуля); + СтрокаРасширения = СтрокаРасширения(ДеревоТестов, СтрокиРасширений, ИмяРасширения); + СтрокаМодуля = ДобавитьСтрокуМодуля(СтрокаРасширения, ОписаниеМодуля.Метаданные); Если ОписаниеМодуля.НаборыТестов.Количество() = 1 Тогда @@ -225,19 +217,24 @@ КонецПроцедуры -&НаКлиентеНаСервереБезКонтекста -Функция ДобавитьСтрокуРасширения(Владелец, ИмяРасширения) - - Строка = Владелец.ПолучитьЭлементы().Добавить(); - Строка.Идентификатор = ИмяРасширения; - Строка.Представление = ИмяРасширения; - Строка.ТипОбъекта = 0; - - Возврат Строка; +&НаКлиенте +Функция СтрокаРасширения(ДеревоТестов, СтрокиРасширений, ИмяРасширения) + + СтрокаРасширения = СтрокиРасширений[ИмяРасширения]; + Если СтрокаРасширения = Неопределено Тогда + СтрокаРасширения = ДеревоТестов.ПолучитьЭлементы().Добавить(); + СтрокаРасширения.Идентификатор = ИмяРасширения; + СтрокаРасширения.Представление = ИмяРасширения; + СтрокаРасширения.ТипОбъекта = 0; + + СтрокиРасширений.Вставить(ИмяРасширения, СтрокаРасширения); + КонецЕсли; + Возврат СтрокаРасширения; + КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Функция ДобавитьСтрокуМодуля(Владелец, МетаданныеМодуля) Строка = Владелец.ПолучитьЭлементы().Добавить(); @@ -249,7 +246,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Функция ДобавитьСтрокуНабора(Владелец, Набор) Строка = Владелец.ПолучитьЭлементы().Добавить(); @@ -261,7 +258,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Функция ДобавитьСтрокуТеста(Владелец, Тест) Представление = ЮТФабрикаСлужебный.ПредставлениеТеста(Тест); @@ -281,7 +278,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура УстановитьРекурсивноЗначение(Элементы, Значение, Колонка = "Отметка") Для Каждого Элемент Из Элементы Цикл @@ -296,7 +293,7 @@ КонецПроцедуры -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура ОбновитьОтметкиРодителей(Элемент) Родитель = Элемент.ПолучитьРодителя(); diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" index fc20d748a..ac82efb27 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214.mdo" @@ -10,14 +10,17 @@ ru Функциональность запуска тестирования + CommonModule.ЮТест CommonModule.ЮТИсполнительСлужебныйВызовСервера CommonModule.ЮТИсполнительСлужебныйГлобальный CommonModule.ЮТИсполнительСлужебныйКлиент CommonModule.ЮТИсполнительСлужебныйКлиентСервер CommonModule.ЮТПараметрыЗапускаСлужебный + CommonModule.ЮТТесты CommonModule.ЮТТестыСлужебный CommonModule.ЮТФильтрацияСлужебный CommonModule.ЮТЧитательСлужебный CommonModule.ЮТЧитательСлужебныйВызовСервера + DataProcessor.ЮТЮнитТесты Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" index 3d16e0022..e65bdd9ec 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" @@ -10,6 +10,7 @@ ru Содержит функциональности мокирования данных + CommonModule.Мокито CommonModule.МокитоОбучение CommonModule.МокитоПерехват CommonModule.МокитоПроверки diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index 68a3a618e..d494eb644 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -13,21 +13,34 @@ CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент CommonModule.ЮТЗависимости CommonModule.ЮТЗависимостиСлужебный + CommonModule.ЮТЗависимостиСлужебныйВызовСервера + CommonModule.ЮТЗависимостиСлужебныйКлиент CommonModule.ЮТИсключения + CommonModule.ЮТИсполнительСлужебныйСервер + CommonModule.ЮТКоллекции CommonModule.ЮТКомпоненты CommonModule.ЮТКомпонентыСлужебныйВызовСервера CommonModule.ЮТКомпонентыСлужебныйКлиент + CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер + CommonModule.ЮТЛогирование CommonModule.ЮТЛогированиеСлужебныйВызовСервера CommonModule.ЮТЛогИсполненияТестаСлужебный - CommonModule.ЮТЛокальСлужебный + CommonModule.ЮТМетаданные CommonModule.ЮТМетаданныеСлужебный CommonModule.ЮТМетаданныеСлужебныйВызовСервера CommonModule.ЮТМетаданныеСлужебныйПовтИсп + CommonModule.ЮТМетоды CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения + CommonModule.ЮТОбщий + CommonModule.ЮТОбщийСлужебный CommonModule.ЮТОбщийСлужебныйВызовСервера + CommonModule.ЮТОкружение + CommonModule.ЮТОкружениеСлужебныйКлиентСервер CommonModule.ЮТОтчетСлужебный + CommonModule.ЮТОтчетСлужебныйКлиентСервер CommonModule.ЮТПодключаемыеМодулиСлужебный + CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера CommonModule.ЮТПроверкиСлужебный CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент @@ -36,7 +49,9 @@ CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытияСлужебный CommonModule.ЮТСообщенияСлужебный + CommonModule.ЮТСтроки CommonModule.ЮТТипыДанныхСлужебный + CommonModule.ЮТФабрика CommonModule.ЮТФабрикаСлужебный CommonModule.ЮТФайлы CommonPicture.ЮТЗапустить diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index 4544f5ea1..9c4b69b2a 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -10,6 +10,7 @@ ru Реализация генерации и работы с тестовыми данными + CommonModule.ЮТЗапросы CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный CommonModule.ЮТПреобразованияСлужебный diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" index b1bc26337..dd4c1b2ec 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -6,5 +6,6 @@ Загрузка тестов true + CommonModule.ЮТТестыСлужебный Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" index 90f3f4ecf..4d9e3c527 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -7,5 +7,10 @@ true CommonModule.ЮТЗависимостиСлужебный + CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер + CommonModule.ЮТКонтекстСлужебный + CommonModule.ЮТОкружениеСлужебныйКлиентСервер + CommonModule.ЮТПодражательСлужебный + CommonModule.ЮТТестовыеДанныеСлужебный Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" index cabd5580a..64a73d8b3 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -8,6 +8,7 @@ true CommonModule.МокитоСлужебный CommonModule.ЮТИсполнительСлужебныйКлиент + CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТУтверждения Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index fc26f7c5c..766d0179e 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -28,8 +28,10 @@ CommonModule.ЮТКонтекстТеста CommonModule.ЮТЛогирование CommonModule.ЮТМетаданные + CommonModule.ЮТМетоды CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий + CommonModule.ЮТОкружение CommonModule.ЮТПодражатель CommonModule.ЮТПодражатель_Банки CommonModule.ЮТПодражатель_Компании diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" new file mode 100644 index 000000000..31347d25a --- /dev/null +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -0,0 +1,53 @@ + + + + + + + + + + + + Основной + + ru + Основной + + true + ChartOfAccounts.Основной + Managed + true + + Организация + + ru + Организация + + + CatalogRef.Организации + + + + Use + true + + + Сумма + + ru + Сумма + + + Number + + 10 + 2 + + + + + Use + true + + diff --git "a/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" new file mode 100644 index 000000000..c783cf73a --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -0,0 +1,204 @@ + + + + + + + + + + + + Основной + + ru + Основной + + true + ChartOfAccounts.Основной.StandardAttribute.Code + ChartOfAccounts.Основной.StandardAttribute.Description + DontUse + DontUse + Managed + DontUse + ChartOfCharacteristicTypes.ВидыСубконто + 3 + 9 + 25 + true + + + Товары + Товары + 1 + ActivePassive + + ChartOfCharacteristicTypes.ВидыСубконто.Контрагент + + + ChartOfCharacteristicTypes.ВидыСубконто.Склад + + + + Деньги + Деньги + 2 + ActivePassive + + ChartOfCharacteristicTypes.ВидыСубконто.Контрагент + + + ChartOfCharacteristicTypes.ВидыСубконто.РасчетныйСчетКонтрагента + + + ChartOfCharacteristicTypes.ВидыСубконто.Валюта + + + + InDialog + BothWays + + Реквизит + + ru + Реквизит + + + String + + 10 + + + + + + DontUse + Use + + + + + + + ТабличнаяЧасть + + ru + Табличная часть + + + Реквизит + + ru + Реквизит + + + String + + 10 + + + + + Use + DontUse + + + + ПризнакУчета + + ru + Признак учета + + + Boolean + + + + Use + + + + Валютный + + ru + Валютный + + + Boolean + + + + Use + + + + Количественный + + ru + Количественный + + + Boolean + + + + Use + + + + ПризнакУчетаСубконто + + ru + Признак учета субконто + + + Boolean + + + + Use + + + + Суммовой + + ru + Суммовой + + + Boolean + + + + Use + + + + Валютный + + ru + Валютный + + + Boolean + + + + Use + + + + Количественный + + ru + Количественный + + + Boolean + + + + Use + + + diff --git "a/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" new file mode 100644 index 000000000..c0140074a --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" @@ -0,0 +1,83 @@ + + + + + + + + + + + ВидыСубконто + + ru + Виды субконто + + true + ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Code + ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Description + DontUse + DontUse + Managed + Use + + CatalogRef.ВидыЦен + CatalogRef.Валюты + CatalogRef.Контрагенты + CatalogRef.РасчетныеСчета + CatalogRef.РасчетныеСчетаКонтрагентов + CatalogRef.Склады + CatalogRef.Товары + + true + 9 + Variable + 25 + true + true + AsDescription + + + Контрагент + Контрагент + 000000001 + + CatalogRef.Контрагенты + + + + Валюта + Валюта + 000000002 + + CatalogRef.Валюты + + + + РасчетныйСчет + Расчетный счет + 000000003 + + CatalogRef.РасчетныеСчета + + + + Склад + Склад + 000000004 + + CatalogRef.Склады + + + + РасчетныйСчетКонтрагента + Расчетный счет контрагент + 000000005 + + CatalogRef.РасчетныеСчетаКонтрагентов + + + + InDialog + BothWays + diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo index 27e86a9f3..64339fd74 100644 --- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo +++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo @@ -290,4 +290,7 @@ AccumulationRegister.Продажи AccumulationRegister.ТоварныеЗапасы ChartOfCharacteristicTypes.ВидыХарактеристик + ChartOfCharacteristicTypes.ВидыСубконто + ChartOfAccounts.Основной + AccountingRegister.Основной diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" index d467041cc..813e70811 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" @@ -39,6 +39,8 @@ КонецЕсли; КонецЕсли; + + СформироватьПроводкиБухгалтерия(); КонецПроцедуры @@ -63,7 +65,6 @@ КонецПроцедуры - Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) //Удалим из списка проверяемых реквизитов валюту, если по организации не ведется @@ -74,3 +75,56 @@ КонецПроцедуры +Процедура СформироватьПроводкиБухгалтерия() + + Курс = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", Валюта)).Курс; + + Если Курс = 0 Тогда + Сумма = Товары.Итог("Сумма"); + Иначе + Сумма = Товары.Итог("Сумма") / Курс; + КонецЕсли; + + Движения.Основной.Записывать = Истина; + Проводка = Движения.Основной.ДобавитьКредит(); + Проводка.Организация = Организация; + Проводка.Период = Дата; + Проводка.Сумма = Сумма; + Проводка.Счет = ПланыСчетов.Основной.Деньги; + Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Контрагент] = Поставщик; + Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Валюта] = Валюта; + Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.РасчетныйСчетКонтрагента] = РасчетныйСчетКонтрагента(Поставщик); + + Проводка = Движения.Основной.ДобавитьДебет(); + Проводка.Организация = Организация; + Проводка.Период = Дата; + Проводка.Сумма = Сумма; + Проводка.Счет = ПланыСчетов.Основной.Товары; + Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Контрагент] = Поставщик; + Проводка.Субконто[ПланыВидовХарактеристик.ВидыСубконто.Склад] = Склад; + +КонецПроцедуры + +Функция РасчетныйСчетКонтрагента(Контрагент) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | РасчетныеСчетаКонтрагентов.Ссылка + |ИЗ + | Справочник.РасчетныеСчетаКонтрагентов КАК РасчетныеСчетаКонтрагентов + |ГДЕ + | РасчетныеСчетаКонтрагентов.Владелец = &Владелец + | И НЕ РасчетныеСчетаКонтрагентов.ПометкаУдаления"; + + Запрос.УстановитьПараметр("Владелец", Контрагент); + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + Возврат Выборка[0]; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" index 88341518c..003c31cb2 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" @@ -94,6 +94,7 @@ Document.ПриходТовара.Form.ФормаСписка AccumulationRegister.ТоварныеЗапасы AccumulationRegister.Взаиморасчеты + AccountingRegister.Основной true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" index 95f9da26a..e0766b138 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" @@ -107,6 +107,7 @@ AccumulationRegister.Продажи AccumulationRegister.ТоварныеЗапасы AccumulationRegister.Взаиморасчеты + AccountingRegister.Основной true true diff --git a/sonar-project.properties b/sonar-project.properties index 95289ab94..624497e78 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -12,4 +12,7 @@ sonar.inclusions=**/*.bsl, **/*.os # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=UTF-8 -sonar.bsl.languageserver.configurationPath=.bsl-language-server.json \ No newline at end of file +sonar.bsl.languageserver.configurationPath=.bsl-language-server.json +sonar.qualitygate.wait=true +sonar.organization=bia-technologies +sonar.host.url=https://sonar.openbsl.ru \ No newline at end of file diff --git "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" index c2a7ce9eb..828d5050f 100644 --- "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" +++ "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ManagerModule.bsl" @@ -19,7 +19,7 @@ &Вместо("СохранитьИзменения") Функция Расш1_СохранитьИзменения(ОбрабатываемыеЭлементы) Экспорт - ПараметрыМетода = Мокито.МассивПараметров(ОбрабатываемыеЭлементы); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(ОбрабатываемыеЭлементы); ПрерватьВыполнение = Ложь; Результат = МокитоПерехват.АнализВызова(Справочники.Встречи, "СохранитьИзменения", ПараметрыМетода, ПрерватьВыполнение); @@ -35,7 +35,7 @@ &Вместо("ЗаполнитьОбъект") Процедура Расш1_ЗаполнитьОбъект(Объект, ОбрабатываемыйЭлемент) Экспорт - ПараметрыМетода = Мокито.МассивПараметров(Объект, ОбрабатываемыйЭлемент); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Объект, ОбрабатываемыйЭлемент); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(Справочники.Встречи, "ЗаполнитьОбъект", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" index b4238820d..328cb0662 100644 --- "a/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" +++ "b/tests/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/ObjectModule.bsl" @@ -35,7 +35,7 @@ &Вместо("ПередЗаписью") Процедура Расш1_ПередЗаписью(Отказ) - ПараметрыМетода = Мокито.МассивПараметров(Отказ); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Отказ); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" "b/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" index 958f0846f..e96428b25 100644 --- "a/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" +++ "b/tests/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/ObjectModule.bsl" @@ -19,7 +19,7 @@ &Вместо("ПечатнаяФормаШтрихкода") Функция Расш1_ПечатнаяФормаШтрихкода(ТабличныйДокумент) Экспорт - ПараметрыМетода = Мокито.МассивПараметров(ТабличныйДокумент); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(ТабличныйДокумент); ПрерватьВыполнение = Ложь; Результат = МокитоПерехват.АнализВызова(ЭтотОбъект, "ПечатнаяФормаШтрихкода", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" index 39c2b26b4..2343b0e4d 100644 --- "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/Module.bsl" @@ -19,7 +19,7 @@ &Вместо("ВыполнитьЗапрос") Функция Расш1_ВыполнитьЗапрос(Адрес, ФорматОтвета, Авторизация) Экспорт - ПараметрыМетода = Мокито.МассивПараметров(Адрес, ФорматОтвета, Авторизация); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Адрес, ФорматОтвета, Авторизация); ПрерватьВыполнение = Ложь; Результат = МокитоПерехват.АнализВызова(Интеграция, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index b44f7343a..de3ef2aa6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Обучение") .ДобавитьТест("Обучение_ЦепочкаВызовов") .ДобавитьТест("Проверить") @@ -60,15 +60,19 @@ Описание = "Обучение через указание имени и набора параметров"; Мокито.Обучение(Интеграция) - .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЛюбойПараметр)) - .Вернуть(20) - .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(Адрес, 2)) + .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(Адрес, 1)) + .Вернуть(1) + .Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(, 2)) .Вернуть(2) + .Когда("ВыполнитьЗапрос",) + .Вернуть(20) .Прогон(); - ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 2), Описание + ". Кейс 1") + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 1), Описание + ". Кейс 1") + .Равно(1); + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 2), Описание + ". Кейс 2") .Равно(2); - ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 1), Описание + ". Кейс 2") + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 10), Описание + ". Кейс 3") .Равно(20); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" index ec3b4477b..ebd4389f1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("ВыброситьИсключение") .ДобавитьСерверныйТест("ФормированиеТипыПерехватываемыхОбъектов") ; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3cd44a130..8b32adcab 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("ДанныеПерехвата") ; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index ae504ca5b..9b10792c1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -28,6 +28,8 @@ .ДобавитьТест("РезультатПустой") .ДобавитьТест("Запись") .ДобавитьТест("Записи") + .ДобавитьТест("Запись_Субконто") + .ДобавитьТест("Записи_Субконто") .ДобавитьТест("ЗначенияРеквизитовЗаписи") .ДобавитьТест("ЗначениеРеквизитаЗаписи") .ДобавитьТест("ДвиженияДокумента") @@ -208,14 +210,7 @@ .НеЗаполнено(); // Документ, тест на табличную часть - Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") - .Фикция("Склад") - .Фикция("Организация") - .Фикция("Поставщик") - .ТабличнаяЧасть("Товары") - .ДобавитьСтроку() - .Фикция("Товар") - .Фикция("Цена"); + Конструктор = ПриходТовара(); Ссылка = Конструктор.Записать(); ДанныеОбъекта = Конструктор.ДанныеОбъекта(); @@ -228,7 +223,7 @@ .Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик) .Свойство("Товары") .ИмеетТип("Массив") - .ИмеетДлину(1) + .ИмеетДлину(2) .Свойство("Товары[0].НомерСтроки").Равно(1) .Свойство("Товары[0].Товар").Равно(ДанныеОбъекта.Товары[0].Товар); @@ -284,6 +279,42 @@ КонецПроцедуры +Процедура Запись_Субконто() Экспорт + + Ссылка = ПриходТовара().Провести(); + Запись = ЮТЗапросы.Запись("РегистрБухгалтерии.Основной.ДвиженияССубконто", ЮТест.Предикат() + .Реквизит("Регистратор").Равно(Ссылка)); + + ЮТест.ОжидаетЧто(Запись) + .ИмеетТип("Структура") + .ИмеетСвойство("ВидСубконто1") + .ИмеетСвойство("ВидСубконто2") + .ИмеетСвойство("ВидСубконто3") + .ИмеетСвойство("Субконто1") + .ИмеетСвойство("Субконто2") + .ИмеетСвойство("Субконто3"); + +КонецПроцедуры + +Процедура Записи_Субконто() Экспорт + + Ссылка = ПриходТовара().Провести(); + Записи = ЮТЗапросы.Записи("РегистрБухгалтерии.Основной.ДвиженияССубконто", ЮТест.Предикат() + .Реквизит("Регистратор").Равно(Ссылка)); + + ЮТест.ОжидаетЧто(Записи) + .ИмеетТип("Массив") + .ИмеетДлину(2) + .КаждыйЭлементСодержитСвойство("ВидСубконто1") + .КаждыйЭлементСодержитСвойство("ВидСубконто2") + .КаждыйЭлементСодержитСвойство("ВидСубконто3") + .КаждыйЭлементСодержитСвойство("Субконто1") + .КаждыйЭлементСодержитСвойство("Субконто2") + .КаждыйЭлементСодержитСвойство("Субконто3") + ; + +КонецПроцедуры + Процедура ЗначенияРеквизитовЗаписи() Экспорт Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары") @@ -353,15 +384,7 @@ Процедура ДвиженияДокумента() Экспорт - Конструктор = ЮТест.Данные().КонструкторОбъекта("Документ.ПриходТовара") - .ФикцияОбязательныхПолей() - .ТабличнаяЧасть("Товары") - .ДобавитьСтроку() - .Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение - .ФикцияОбязательныхПолей() - .ДобавитьСтроку() - .Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение - .ФикцияОбязательныхПолей(); + Конструктор = ПриходТовара(); Документ = Конструктор.Провести(); ДанныеОбъекта = Конструктор.ДанныеОбъекта(); @@ -437,4 +460,21 @@ КонецФункции +Функция ПриходТовара() + + Возврат ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") + .Фикция("Склад") + .Фикция("Организация") + .Фикция("Поставщик") + .Фикция("Валюта") + .ТабличнаяЧасть("Товары") + .ДобавитьСтроку() + .Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение + .ФикцияОбязательныхПолей() + .ДобавитьСтроку() + .Установить("Сумма", ЮТест.Данные().СлучайноеПоложительноеЧисло(999999)) // иначе возможно переполнение + .ФикцияОбязательныхПолей(); + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index f38dbaa4a..29d8613ac 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -95,7 +95,7 @@ Функция ОписаниеРезультатаТестирования(НаборыТестов) ОписаниеРезультата = Новый Структура; - ОписаниеРезультата.Вставить("МетаданныеМодуля", Неопределено); + ОписаниеРезультата.Вставить("Метаданные", Неопределено); ОписаниеРезультата.Вставить("НаборыТестов", НаборыТестов); ОписаниеРезультата.Вставить("Ошибки", Новый Массив); ОписаниеРезультата.Вставить("НастройкиВыполнения", Неопределено); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 8b626e5d9..02cc3add6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -35,6 +35,7 @@ .ДобавитьТест("ВСоответствие") .ДобавитьТест("ВСтруктуру") .ДобавитьТест("ПредставлениеМассива") + .ДобавитьТест("ОбъединитьМассивы") ; КонецПроцедуры @@ -302,18 +303,17 @@ Значение2 = ЮТест.Данные().СлучайнаяСтрока(); Значение3 = ЮТест.Данные().СлучайнаяСтрока(); Значение4 = ЮТест.Данные().СлучайнаяСтрока(); - Значение5 = ЮТест.Данные().СлучайнаяСтрока(); + Значение5 = Неопределено; Значение6 = ЮТест.Данные().СлучайнаяСтрока(); Значение7 = ЮТест.Данные().СлучайнаяСтрока(); Значение8 = ЮТест.Данные().СлучайнаяСтрока(); Значение9 = ЮТест.Данные().СлучайнаяСтрока(); - Значение10 = ЮТест.Данные().СлучайнаяСтрока(); - Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10); + Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, , Значение6, Значение7, Значение8, Значение9); ЮТест.ОжидаетЧто(Результат, "Массив значений после добавления") .ИмеетТип("Массив") - .ИмеетДлину(10) + .ИмеетДлину(9) .Элемент(0).Равно(Значение1) .Элемент(1).Равно(Значение2) .Элемент(2).Равно(Значение3) @@ -322,8 +322,7 @@ .Элемент(5).Равно(Значение6) .Элемент(6).Равно(Значение7) .Элемент(7).Равно(Значение8) - .Элемент(8).Равно(Значение9) - .Элемент(9).Равно(Значение10); + .Элемент(8).Равно(Значение9); КонецПроцедуры @@ -416,6 +415,22 @@ КонецПроцедуры +Процедура ОбъединитьМассивы() Экспорт + + Коллекция1 = ЮТКоллекции.ЗначениеВМассиве(1, 2); + Коллекция2 = Новый Массив; + Коллекция3 = ЮТКоллекции.ЗначениеВМассиве(3); + Коллекция4 = ЮТКоллекции.ЗначениеВМассиве(4, 5); + + Результат = ЮТКоллекции.ОбъединитьМассивы(Коллекция1, Коллекция2, Коллекция3, Коллекция4); + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Массив") + .Заполнено() + .Равно(ЮТКоллекции.ЗначениеВМассиве(1, 2, 3, 4, 5)) + .ИмеетДлину(5); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 8bf200661..c8ea18121 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -20,9 +20,11 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Вызов(ТегиТестов.Мокирование()) + .УдалениеТестовыхДанных() .ДобавитьТест("ЗаполнитьСправочник") .ДобавитьТест("ЗаполнитьДокумент") + .ДобавитьТест("ЗаполнитьСчет") .ДобавитьТест("СоздатьЗаписьРегистраСведений") .ДобавитьТест("СоздатьЗаписьРегистраСведений_ОбменДанными") .ДобавитьТест("Фикция") @@ -32,7 +34,7 @@ .ДобавитьТест("СоздатьГруппу") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("УстановитьСсылкуНового") - ; + ; КонецПроцедуры @@ -349,4 +351,31 @@ КонецПроцедуры +Процедура ЗаполнитьСчет() Экспорт + + Счет = ЮТест.Данные().КонструкторОбъекта("ПланыСчетов.Основной") + .Установить("Валютный", Истина) + .Установить("Количественный", Истина) + .ТабличнаяЧасть("ВидыСубконто") + .ДобавитьСтроку() + .Установить("ВидСубконто", ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконто.Валюта")) + .Фикция("Суммовой") + .Установить("Валютный", Истина) + .Установить("Количественный", Истина) + .ДобавитьСтроку() + .ФикцияОбязательныхПолей() + .ДобавитьСтроку() + .Установить("ВидСубконто", ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконто.РасчетныйСчетКонтрагента")) + .Установить("ТолькоОбороты", Истина) + .Установить("Предопределенное", Ложь) + .Записать(Ложь, Истина) + ; + + ЮТест.ОжидаетЧто(Счет) + .Заполнено() + .ИмеетТип("ПланСчетовСсылка.Основной") + ; + +КонецПроцедуры + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index dea98a664..c284acc23 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -67,9 +67,10 @@ ЮТест.ОжидаетЧто(ЮТМетаданные.РегистрыДвиженийДокумента(ПредопределенноеЗначение("Документ.ПриходТовара.ПустаяСсылка"))) .ИмеетТип("Структура") .Заполнено() - .ИмеетДлину(2) + .ИмеетДлину(3) .Свойство("ТоварныеЗапасы").Равно("РегистрНакопления.ТоварныеЗапасы") - .Свойство("Взаиморасчеты").Равно("РегистрНакопления.Взаиморасчеты"); + .Свойство("Взаиморасчеты").Равно("РегистрНакопления.Взаиморасчеты") + .Свойство("Основной").Равно("РегистрБухгалтерии.Основной"); ЮТест.ОжидаетЧто(ЮТМетаданные) .Метод("РегистрыДвиженийДокумента").Параметр("РегистрНакопления.ТоварныеЗапасы") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 401f31ba9..c8506c9f3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("ПараметрыГенерацииОтчета") .ДобавитьТест("ЗаписатьОтчет") .ДобавитьТест("ОписаниеТеста") + .ДобавитьТест("ОписаниеТеста_Теги") ; КонецПроцедуры @@ -42,6 +43,8 @@ Процедура ЗаписатьОтчет() Экспорт РезультатТестирования = ТестовыеДанные.РезультатТестирования(); + РезультатТестирования[0].Теги = ЮТКоллекции.ЗначениеВМассиве("Тестовый модуль"); + Каталог = ЮТест.Данные().НовоеИмяВременногоФайла(); СоздатьКаталог(Каталог); Формат = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета().Форматы.allure; @@ -53,7 +56,7 @@ Модуль = ТестовыеДанные.ОписаниеТестовогоМодуля(); Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль); - Тест = ТестовыеДанные.ОписаниеТеста(Набор); + Тест = ТестовыеДанные.ОписаниеТеста(Модуль, Набор); ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); ЮТест.ОжидаетЧто(ОписаниеТеста) @@ -61,12 +64,12 @@ .Заполнено() ; - ИмяТестовогоНабора = Модуль.МетаданныеМодуля.Имя; + ИмяТестовогоНабора = Модуль.Метаданные.Имя; ИмяВложенногоНабора = СтрШаблон("%1 [%2]", Набор.Представление, Тест.Режим); СодержитМетку(ОписаниеТеста, "suite", ИмяТестовогоНабора); СодержитМетку(ОписаниеТеста, "subSuite", ИмяВложенногоНабора); - Набор.Представление = Модуль.МетаданныеМодуля.Имя; + Набор.Представление = Модуль.Метаданные.Имя; ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); СодержитМетку(ОписаниеТеста, "suite", ИмяТестовогоНабора); ЮТест.ОжидаетЧто(ОписаниеТеста) @@ -77,6 +80,23 @@ КонецПроцедуры +Процедура ОписаниеТеста_Теги() Экспорт + + Модуль = ТестовыеДанные.ОписаниеТестовогоМодуля(); + Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль); + Тест = ТестовыеДанные.ОписаниеТеста(Модуль, Набор); + + Модуль.Теги = ЮТСтроки.РазделитьСтроку("Модуль, Тег1, Тег 2", ","); + Набор.Теги = ЮТСтроки.РазделитьСтроку("Набор, ТЕГ 2, Тег3", ","); + Тест.Теги = СтрРазделить("Тест, тег3, тег4", ", ", Ложь); + ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); + + Для Каждого Метка Из ЮТСтроки.РазделитьСтроку("Модуль, Набор, Тест, Тег 2, Тег3, тег4", ",") Цикл + СодержитМетку(ОписаниеТеста, "tag", Метка); + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 990d59a09..3adf5508e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -46,11 +46,11 @@ Варианты = ЮТест.Варианты("Предикаты, ОжидаемоеЗначение") .Добавить(ЮТПредикаты, Истина) - .Добавить(Мокито.МассивПараметров(СтруктураПредикат), Истина) + .Добавить(ЮТКоллекции.ЗначениеВМассиве(СтруктураПредикат), Истина) .Добавить(СтруктураПредикат, Истина) - .Добавить(Мокито.МассивПараметров(Новый Структура), Ложь) - .Добавить(Мокито.МассивПараметров(Новый Структура("ЛюбойПараметр", 1)), Ложь) - .Добавить(Мокито.МассивПараметров(1, 2, 3), Ложь); + .Добавить(ЮТКоллекции.ЗначениеВМассиве(Новый Структура), Ложь) + .Добавить(ЮТКоллекции.ЗначениеВМассиве(Новый Структура("ЛюбойПараметр", 1)), Ложь) + .Добавить(ЮТКоллекции.ЗначениеВМассиве(1, 2, 3), Ложь); Для Каждого Вариант Из Варианты.СписокВариантов() Цикл ЮТест.ОжидаетЧто(ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Вариант.Предикаты)).Равно(Вариант.ОжидаемоеЗначение); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 28e5e21ca..737386fa7 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("ДобавитьСтроку") .ДобавитьТест("СтрокаСимволов") .ДобавитьТест("СравнитьВерсии") + .ДобавитьТест("УникальныеСтроки") ; КонецПроцедуры @@ -87,6 +88,19 @@ КонецПроцедуры +Процедура УникальныеСтроки() Экспорт + + Вход = СтрРазделить("Раз,раз, раз,проверка", ","); + + ЮТест.ОжидаетЧто(ЮТСтроки.УникальныеСтроки(Вход)) + .Содержит("Раз") + .НеСодержит("раз") + .Содержит(" раз") + .Содержит("проверка") + .ИмеетДлину(3); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 763942050..144d1d2b5 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Тег("ТестовыеДанные").УдалениеТестовыхДанных() .ДобавитьТест("Удалить") .ДобавитьТест("ВариантыПараметров") .ДобавитьТест("СоздатьГруппу") @@ -378,7 +378,7 @@ .Параметр(Новый Структура("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"))) .ВыбрасываетИсключение("не найдена в макете основная колонка с именем `Товар`"); - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Section not found", "Область не найдена"); + ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Section not found", "Область не найдена"); ЮТест.ОжидаетЧто(ЮТест.Данные()) .Метод("ЗагрузитьИзМакета") .Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.ОсновнаяТаблица") @@ -436,9 +436,10 @@ .Метод("ЗагрузитьИзМакета", Параметры) .НеВыбрасываетИсключение(); + ТекстСообщения = ЮТСтроки.ЛокализованноеСообщениеПлатформы("ru = 'не заполнено или заполнено неверно'; en = 'is blank or has an invalid value'"); ЮТест.ОжидаетЧто(ЮТест.Данные()) .Метод("ЗагрузитьИзМакета").Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3").Параметр(ОписанияТипов) - .ВыбрасываетИсключение("не заполнено или заполнено неверно"); + .ВыбрасываетИсключение(ТекстСообщения); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7e366d4b8..c94f4c824 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -23,7 +23,7 @@ КодТовара = ЮТОбщий.ЧислоВСтроку(ЮТест.Данные().СлучайноеПоложительноеЧисло(999999999)); Период = ТекущаяДата(); - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Тег("ТестовыеДанные").УдалениеТестовыхДанных() .ДобавитьТест("Фикция") .СПараметрами(Новый ОписаниеТипов("Число")) .СПараметрами(Новый ОписаниеТипов("Строка")) @@ -47,7 +47,7 @@ .ДобавитьТест("УдалениеТестовыхДанныхРегистрСведений") .СПараметрами(Период) .СПараметрами(Период) - .ДобавитьТест("НеУдалениеТестовыхДанныхВызовСервера") + .ДобавитьТест("УдалениеТестовыхДанныхВызовСервера") ; КонецПроцедуры @@ -71,7 +71,7 @@ КонецПроцедуры -Процедура НеУдалениеТестовыхДанныхВызовСервера() Экспорт +Процедура УдалениеТестовыхДанныхВызовСервера() Экспорт Ссылка = ПомощникТестированияВызовСервера.НовыйТовар(); ЮТест.Контекст().Значение("Ссылки").Вставить("ТестВызовСервера", Ссылка); @@ -115,19 +115,24 @@ КонецПроцедуры +Процедура ПослеТестовогоНабора() Экспорт + + Ссылки = ЮТест.Контекст().Значение("Ссылки"); + СсылкаСуществует(Ссылки.Набор, "Набор"); + +КонецПроцедуры + Процедура ПослеВсехТестов() Экспорт Ссылки = ЮТест.Контекст().Значение("Ссылки"); СсылкаНеСуществует(Ссылки.Набор, "Набор"); - Если Ссылки.Тест <> Неопределено Тогда + Если Ссылки.Свойство("Тест") И Ссылки.Тест <> Неопределено Тогда СсылкаНеСуществует(Ссылки.Тест, "Тест"); КонецЕсли; -#Если Сервер Тогда - СсылкаНеСуществует(Ссылки.ТестВызовСервера, "ТестВызовСервера"); -#Иначе - СсылкаСуществует(Ссылки.ТестВызовСервера, "ТестВызовСервера"); -#КонецЕсли + Если Ссылки.Свойство("ТестВызовСервера") Тогда + СсылкаНеСуществует(Ссылки.ТестВызовСервера, "ТестВызовСервера"); + КонецЕсли; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index dae584987..8397c5f4d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -31,7 +31,7 @@ Процедура ПередКаждымТестом() Экспорт - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля(); ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; ОписаниеМодуля.КлиентОбычноеПриложение = Истина; ОписаниеМодуля.Сервер = Истина; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 170406dbb..42f67e3b0 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -55,6 +55,7 @@ .ДобавитьТест("НеИмеетДлину") .ДобавитьТест("ВыбрасываетИсключение") .ДобавитьТест("НеВыбрасываетИсключение") + .ДобавитьТест("УказаниеПараметровПоУмолчанию") .ДобавитьТест("ИмеетМетод") .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции").ВТранзакции(Ложь) .ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение") @@ -77,7 +78,8 @@ .ДобавитьТест("ЛюбойЭлементСоответствуетПредикату") .ДобавитьТест("СодержитПредикат") .ДобавитьТест("НеСодержитПредикат") - .ДобавитьТест("ФорматированныеСтроки"); + .ДобавитьТест("ФорматированныеСтроки") + ; Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2"); Список = Новый СписокЗначений(); @@ -507,7 +509,8 @@ Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `1` равно `<Пустое значение, Тип: Не определено>`, но это не так"); + ОжидаемоеСообщение = СтрШаблон("Ожидали, что проверяемое значение `1` равно `<Пустое значение, Тип: %1>`, но это не так", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, ОжидаемоеСообщение); КонецПроцедуры @@ -539,7 +542,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` не равно `%1`, но это не так", "<Пустое значение, Тип: Не определено>")); + + + ПредставлениеЗначения = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` не равно `%1`, но это не так", ПредставлениеЗначения)); КонецПроцедуры @@ -872,7 +878,9 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Не определено>` является заполненным, но это не так"); + + ПредставлениеПустогоЗначения = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` является заполненным, но это не так", ПредставлениеПустогоЗначения)); ПроверитьДанныеОшибкиСравнения(Неопределено, Неопределено); Попытка @@ -892,6 +900,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; + ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `Массив` является заполненным, но это не так"); Попытка @@ -902,9 +911,8 @@ Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), - "Mutable values filling check is unavailable", - "Проверка мутабельных значений на заполненность"); + ОжидаемоеСообщение = ЮТСтроки.ЛокализованноеСообщениеПлатформы( + "ru ='Проверка мутабельных значений на заполненность'; en='Mutable values filling check is unavailable'"); ПроверитьОшибкуИсполнения(Ошибка, ОжидаемоеСообщение); КонецПроцедуры @@ -958,7 +966,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), + ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Mutable values filling check is unavailable", "Проверка мутабельных значений на заполненность"); ПроверитьОшибкуИсполнения(Ошибка, ОжидаемоеСообщение); @@ -983,7 +991,9 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Не определено>` существует, но это не так"); + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` существует, но это не так", ПредставлениеЗначение)); ПроверитьДанныеОшибкиСравнения(Неопределено, Неопределено); Попытка @@ -1014,7 +1024,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Пустая строка: ожидали, что проверяемое значение `<Пустое значение, Тип: Строка>` не существует, но это не так"); + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); + ПроверитьОшибкуУтверждения(Ошибка, + СтрШаблон("Пустая строка: ожидали, что проверяемое значение `%1` не существует, но это не так", ПредставлениеЗначение)); ПроверитьДанныеОшибкиСравнения("", Неопределено); Попытка @@ -1061,7 +1074,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Пустая строка: ожидали, что проверяемое значение `<Пустое значение, Тип: Строка>` является неопределено, но это не так"); + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); + ПроверитьОшибкуУтверждения(Ошибка, + СтрШаблон("Пустая строка: ожидали, что проверяемое значение `%1` является неопределено, но это не так", ПредставлениеЗначение)); Попытка Ошибка = Неопределено; @@ -1101,7 +1117,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Не определено>` не является неопределено, но это не так"); + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, + СтрШаблон("Ожидали, что проверяемое значение `%1` не является неопределено, но это не так", ПредставлениеЗначение)); ПроверитьДанныеОшибкиСравнения(Неопределено, Неопределено); КонецПроцедуры @@ -1120,7 +1139,9 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Не определено>` является null, но это не так"); + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` является null, но это не так", ПредставлениеЗначение)); ПроверитьДанныеОшибкиСравнения(Неопределено, Null); КонецПроцедуры @@ -1194,7 +1215,7 @@ Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Type is not defined", "Тип не определен"); + ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Type is not defined", "Тип не определен"); ПроверитьОшибкуИсполнения(Ошибка, ОжидаемоеСообщение); КонецПроцедуры @@ -1242,7 +1263,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Type is not defined", "Тип не определен"); + ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Type is not defined", "Тип не определен"); ПроверитьОшибкуИсполнения(Ошибка, ОжидаемоеСообщение); КонецПроцедуры @@ -1584,9 +1605,9 @@ Процедура ВыбрасываетИсключение() Экспорт - МетодНеОбнаружен = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Object method not found (НесуществующийМетод)", "Метод объекта не обнаружен (НесуществующийМетод)"); - МногоПараметров = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Too many actual parameters", "Слишком много фактических параметров"); - МалоПараметров = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Not enough actual parameters", "Недостаточно фактических параметров"); + МетодНеОбнаружен = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Object method not found (НесуществующийМетод)", "Метод объекта не обнаружен (НесуществующийМетод)"); + МногоПараметров = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Too many actual parameters", "Слишком много фактических параметров"); + МалоПараметров = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Not enough actual parameters", "Недостаточно фактических параметров"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2)) @@ -1708,6 +1729,16 @@ КонецПроцедуры +Процедура УказаниеПараметровПоУмолчанию() Экспорт + + ЮТУтверждения.Что(ОМ_ЮТУтверждения) + .Метод("МетодСоЗначениеПоУмолчанию", ЮТМетоды.МассивПараметров(, "Исключение")) + .НеВыбрасываетИсключение("Значение отличается от значения по умолчанию") + .НеВыбрасываетИсключение() + ; + +КонецПроцедуры + Процедура ИмеетМетод() Экспорт ЮТест.ОжидаетЧто(ОМ_ЮТУтверждения) @@ -1892,8 +1923,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); ПроверитьОшибкуУтверждения(Ошибка, - "Ожидали, что проверяемое значение `<Пустое значение, Тип: Строка>` начинается с `ризоватовский`, но это не так"); + СтрШаблон("Ожидали, что проверяемое значение `%1` начинается с `ризоватовский`, но это не так", ПредставлениеЗначение)); Варианты = ЮТест.Варианты("ПроверяемоеЗначение, СтрокаПоиска, ОжидаемаяОшибка") .Добавить("Ризоватовский сельсовет", "", "Ожидали, что ожидаемое значение заполнено, но это не так") @@ -1932,8 +1965,10 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; + + ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); ПроверитьОшибкуУтверждения(Ошибка, - "Ожидали, что проверяемое значение `<Пустое значение, Тип: Строка>` заканчивается на `сельсовет`, но это не так"); + СтрШаблон("Ожидали, что проверяемое значение `%1` заканчивается на `сельсовет`, но это не так", ПредставлениеЗначение)); Варианты = ЮТест.Варианты("ПроверяемоеЗначение, СтрокаПоиска, ОжидаемаяОшибка") .Добавить("Ризоватовский сельсовет", "", "Ожидали, что ожидаемое значение заполнено, но это не так") @@ -2418,7 +2453,7 @@ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр); ЮТест.ОжидаетЧто(ПроверяемоеЗначение); - Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры); + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетодКонфигурацииСПерехватомОшибки("ЮТУтверждения", Утверждение, Параметры); Возврат Ошибка; @@ -2476,7 +2511,7 @@ Процедура ПроверитьЭтоОшибкуСравненияБольшеМеньше(ИнформацияОбОшибке) - ОжидаемоеСообщение = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Greater than/Less than compare operations", "Операции сравнения на больше-меньше"); + ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Greater than/Less than compare operations", "Операции сравнения на больше-меньше"); ПроверитьОшибкуИсполнения(ИнформацияОбОшибке, ОжидаемоеСообщение); КонецПроцедуры @@ -2548,6 +2583,16 @@ КонецФункции +Функция МетодСоЗначениеПоУмолчанию(Значение = 999, ОбязательноеЗначение) Экспорт + + Если Значение <> 999 Тогда + ВызватьИсключение "Значение отличается от значения по умолчанию"; + КонецЕсли; + + Возврат ОбязательноеЗначение; + +КонецФункции + Функция ЗаписатьОбъект(Объект) Экспорт Объект.Записать(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cc1127ed4..029bf59db 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,34 +24,42 @@ .ДобавитьТест("ЭтоПодходящееРасширение") .ДобавитьТест("ЭтоПодходящийМодуль") .ДобавитьТест("ОтфильтроватьТестовыеНаборы") - ; + .Добавитьтест("Фильтр_ПолноеИмяТеста") + .Добавитьтест("Фильтр_Контексты") + .Добавитьтест("Фильтр_ТегиМодуля") + .Добавитьтест("Фильтр_ТегиНабора") + .Добавитьтест("Фильтр_ТегиТеста") + .Добавитьтест("Фильтр_Наборы") + .Добавитьтест("Фильтр_СобытиеФильтрацииМодуля") + ; КонецПроцедуры Процедура ЭтоПодходящееРасширение() Экспорт - Варианты = Новый Массив(); - Ключи = "ИмяРасширения, Параметры, Результат, Описание"; + Варианты = ЮТест.Варианты("ИмяРасширения, Параметры, Результат, Описание"); + Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второе расширение")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующее расширение")); + Варианты.Добавить("test", Параметры, Истина, "Простой кейс"); + Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр"); + Варианты.Добавить("тесты", Параметры, Истина, "Второе расширение"); + Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующее расширение"); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Без фильтр по расширениям 1")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Без фильтр по расширениям 2")); + Варианты.Добавить("test", Параметры, Истина, "Без фильтр по расширениям 1"); + Варианты.Добавить("_test", Параметры, Истина, "Без фильтр по расширениям 2"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("test.method"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Фильтр по пути")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение")); + Варианты.Добавить("test", Параметры, Истина, "Фильтр по пути"); + Варианты.Добавить("_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение"); - Для Каждого Вариант Из Варианты Цикл + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); + УстановитьФильтр(Вариант.Параметры); Результат = ЮТФильтрацияСлужебный.ЭтоПодходящееРасширение(Вариант.ИмяРасширения); + ЮТест.ОжидаетЧто(Результат, Вариант.Описание).Равно(Вариант.Результат); КонецЦикла; @@ -60,90 +68,66 @@ Процедура ЭтоПодходящийМодуль() Экспорт - Варианты = Новый Массив(); - Ключи = "ИмяМодуля, Параметры, Результат, Описание"; + Варианты = ЮТест.Варианты("ИмяМодуля, Параметры, Результат, Описание"); РасширениеПоУмолчанию = "__тесты___"; Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль")); + + Варианты.Добавить("test", Параметры, Истина, "Простой кейс"); + Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр"); + Варианты.Добавить("тесты", Параметры, Истина, "Второй модуль"); + Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующий модуль"); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Без фильтр по `module`")); - Варианты.Добавить(Новый Структура(Ключи, "_module", Параметры, Истина, "Без фильтр по `_module`")); + + Варианты.Добавить("module", Параметры, Истина, "Без фильтр по `module`"); + Варианты.Добавить("_module", Параметры, Истина, "Без фильтр по `_module`"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением")); + + Варианты.Добавить("module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("тесты"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения"); // Фильтрация по именам тестовых методов Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста"); + Варианты.Добавить("_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения"); - Для Каждого Вариант Из Варианты Цикл - - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = Вариант.ИмяМодуля; - ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; - Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - КонецЦикла; - -КонецПроцедуры - -Процедура ЭтоПодходящийМетод() Экспорт - - Варианты = Новый Массив(); - Ключи = "ИмяМодуля, Параметры, Результат, Описание"; - РасширениеПоУмолчанию = "__тесты___"; - - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль")); - - Для Каждого Вариант Из Варианты Цикл + УстановитьФильтр(Вариант.Параметры); + ОписаниеМодуля = МетаданныеМодуля(Вариант.ИмяМодуля, РасширениеПоУмолчанию); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = Вариант.ИмяМодуля; - ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); КонецЦикла; @@ -155,67 +139,296 @@ // 1 Контексты = ЮТФабрика.КонтекстыВызова(); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = "ТестовыйМодуль"; - ОписаниеМодуля.Расширение = "ТестовоеРасширение"; - ОписаниеМодуля.Сервер = Истина; - ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; - - Наборы = Новый Массив(); - Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора("Тесты"); - Тест = ЮТФабрикаСлужебный.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); + Набор = ОписаниеНабораТестов("Тесты"); + Тест = ОписаниеТеста("Тест1","Сервер, КлиентУправляемоеПриложение"); Набор.Тесты.Добавить(Тест); - Наборы.Добавить(Набор); - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля = ОписаниеМодуля(); + ОписаниеМодуля.Метаданные.Сервер = Истина; + ОписаниеМодуля.Метаданные.КлиентУправляемоеПриложение = Истина; - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Результат фильтрации") - .Заполнено() - .ИмеетТип("Массив"); - НаборРезультата = Результат[0]; - ЮТест.ОжидаетЧто(НаборРезультата, "Набор результата") + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1"); + + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Результат фильтрации") .Заполнено() - .Свойство("Имя").Равно(Набор.Имя) - .Свойство("Представление").Равно(Набор.Представление) - .Свойство("Тесты").Заполнено(); - ТестРезультата = НаборРезультата.Тесты[0]; - ЮТест.ОжидаетЧто(ТестРезультата, "Тест результата") - .Свойство("Имя").Равно(Тест.Имя) - .Свойство("КонтекстВызова").ИмеетДлину(2); + .Свойство("[0].Тесты").Заполнено() + .Что(ОписаниеМодуля.НаборыТестов[0].Тесты[0], "Тест результата") + .Свойство("Имя").Равно("Тест1") + .Свойство("КонтекстВызова").ИмеетДлину(2); // 2 - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.Сервер"); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ТестРезультата = Результат[0].Тесты[0]; - ЮТест.ОжидаетЧто(ТестРезультата, "Тест с указанием контекста") + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов[0].Тесты[0], "Тест с указанием контекста") .Свойство("Имя").Равно(Тест.Имя) .Свойство("КонтекстВызова").ИмеетДлину(1); // 3 - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.ВызовСервера"); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Тест с указаниме недоступного контекста") - .ИмеетДлину(1); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Тест с указаниме недоступного контекста") + .ИмеетДлину(0); // 4 + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.Сервер", "КлиентУправляемоеПриложение"); + + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Тест с указаниме контекста и фильтра контекстов") + .ИмеетДлину(0); + +КонецПроцедуры + +Процедура Фильтр_ПолноеИмяТеста() Экспорт + + ИмяМодуля = "ТестовыйМодуль"; + ИмяТеста = "ТестовыйТест"; + + ОписаниеМодуля = ОписаниеМодуля(ИмяМодуля); + НаборТестов = ОписаниеНабораТестов(); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста)); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста, "Сервер")); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста + "_")); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста, "НеСервер")); + НаборТестов.Тесты.Добавить(ОписаниеТеста()); + ДобавитьКопиюНабора(ОписаниеМодуля, НаборТестов); + + УстановитьНовыйФильтр(, СтрШаблон("%1.%2", ИмяМодуля, ИмяТеста)); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(2); + + УстановитьНовыйФильтр(, СтрШаблон("%1.%2.КлиентУправляемоеПриложение", ИмяМодуля, ИмяТеста)); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_Контексты() Экспорт + + ОписаниеМодуля = ОписаниеМодуля(); + НаборТестов = ОписаниеНабораТестов(); + НаборТестов.Тесты.Добавить(ОписаниеТеста()); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер")); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер, Сервер")); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Клиент")); + ОписаниеМодуля.НаборыТестов.Добавить(НаборТестов); + + УстановитьНовыйФильтр(, , "Сервер"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(3); + +КонецПроцедуры + +Процедура Фильтр_ТегиТеста() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Теста1, ТегТеста2, Т, _, Тег111"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(3) + .Свойство("[1].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_ТегиНабора() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Набора"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(5); + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Набора, ТегТеста"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(5) + .Свойство("[1].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_ТегиМодуля() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + УстановитьНовыйФильтр(, , , "Тег Модуля"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(0); + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + ОписаниеМодуля.Теги.Добавить("Тег Модуля"); + + УстановитьНовыйФильтр(, , , "Тег Модуля"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(5) + .Свойство("[1].Тесты").ИмеетДлину(2); + +КонецПроцедуры + +Процедура Фильтр_Наборы() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + ОписаниеМодуля.НаборыТестов[1].Имя = "ТестовыйНабор2"; + УстановитьНовыйФильтр(, , , , "ТестовыйНабор"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(5) + +КонецПроцедуры + +Процедура Фильтр_СобытиеФильтрацииМодуля() Экспорт + + ИмяМодуля = "ОМ_ЮТФильтрацияСлужебный"; + ОписаниеМодуля = МетаданныеМодуля(ИмяМодуля, "test"); + + УстановитьНовыйФильтр(ИмяМодуля); + + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, "Без фильтрации").Равно(Истина); + + ЮТест.Контекст().УстановитьЗначение(ИмяМодуля, Истина); + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, "С фильтрацией").Равно(Ложь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьНовыйФильтр(Модули = Неопределено, + Тесты = Неопределено, + Контексты = Неопределено, + Теги = Неопределено, + Наборы = Неопределено) + Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение); + + Если Наборы <> Неопределено Тогда + Параметры.filter.suites = ЮТСтроки.РазделитьСтроку(Наборы, ","); + КонецЕсли; + + Если Тесты <> Неопределено Тогда + Параметры.filter.tests = ЮТСтроки.РазделитьСтроку(Тесты, ","); + КонецЕсли; + + Если Модули <> Неопределено Тогда + Параметры.filter.modules = ЮТСтроки.РазделитьСтроку(Модули, ","); + КонецЕсли; + + Если Теги <> Неопределено Тогда + Параметры.filter.tags = ЮТСтроки.РазделитьСтроку(Теги, ","); + КонецЕсли; + + Если Контексты <> Неопределено Тогда + Параметры.filter.contexts = ЮТСтроки.РазделитьСтроку(Контексты, ","); + КонецЕсли; + + УстановитьФильтр(Параметры); + +КонецПроцедуры + +Процедура УстановитьФильтр(Параметры) + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Тест с указаниме контекста и фильтра контекстов") - .ИмеетДлину(0); +КонецПроцедуры + +Функция МетаданныеМодуля(ИмяМодуля = "ТестовыйМодуль", Расширение = "ТестовоеРасширение") + + МетаданныеМодуля = ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля(); + МетаданныеМодуля.Имя = ИмяМодуля; + МетаданныеМодуля.Расширение = Расширение; + + Возврат МетаданныеМодуля; + +КонецФункции + +Функция ОписаниеМодуля(ИмяМодуля = "ТестовыйМодуль") + + Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля(ИмяМодуля), Новый Массив()); + +КонецФункции + +Функция ОписаниеНабораТестов(Имя = "ТестовыйНабор", Теги = "") + + Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, Теги); + +КонецФункции + +Функция ОписаниеТеста(ИмяТеста = Неопределено, КонтекстыВызова = "Сервер, КлиентУправляемоеПриложение", Теги = "") + + Если ИмяТеста = Неопределено Тогда + ИмяТеста = ЮТест.Данные().СлучайнаяСтрока(); + КонецЕсли; + + Возврат ЮТФабрикаСлужебный.ОписаниеТеста(ИмяТеста, + ЮТест.Данные().СлучайнаяСтрока(), + ЮТСтроки.РазделитьСтроку(КонтекстыВызова, ","), + Теги); + +КонецФункции + +Процедура ДобавитьКопиюНабора(ОписаниеМодуля, Набор) + + ОписаниеМодуля.НаборыТестов.ДОбавить(ЮТКоллекции.СкопироватьРекурсивно(Набор)); КонецПроцедуры +Функция ОписаниеМодуляДляТестированияФильтрации() + + Набор1 = ОписаниеНабораТестов(); + Набор1.Теги = ЮТКоллекции.ЗначениеВМассиве("Тег набора"); + Набор1.Тесты.Добавить(ОписаниеТеста()); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1, ТегТеста2")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТЕГ Теста1")); + + Набор2 = ОписаниеНабораТестов(); + Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста2")); + Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста")); + + ОписаниеМодуля = ОписаниеМодуля(); + ОписаниеМодуля.НаборыТестов.Добавить(Набор1); + ОписаниеМодуля.НаборыТестов.Добавить(Набор2); + + Возврат ОписаниеМодуля; + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d970c6e1f..29b2c1d6d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -56,20 +56,9 @@ ЮТест.ОжидаетЧто(НаборМодуля, "Набор тестов ОМ_ЮТЧитательСлужебный") .ИмеетТип("Структура") - .Свойство("МетаданныеМодуля").ИмеетТип("Структура") + .Свойство("Метаданные").ИмеетТип("Структура") .Свойство("НаборыТестов").ИмеетТип("Массив"); - МетаданныеМодуля = НаборМодуля.МетаданныеМодуля; - ЮТест.ОжидаетЧто(МетаданныеМодуля, "Метаданные модуля") - .Заполнено() - .ИмеетТип("Структура") - .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный") - .Свойство("КлиентОбычноеПриложение").Равно(Истина) - .Свойство("КлиентУправляемоеПриложение").Равно(Истина) - .Свойство("ВызовСервера").Равно(Ложь) - .Свойство("ПолноеИмя").Равно("tests.ОМ_ЮТЧитательСлужебный") - .Свойство("Сервер").Равно(Ложь); - НаборыТестов = НаборМодуля.НаборыТестов; ЮТест.ОжидаетЧто(НаборыТестов, "Наборы тестов модуля") @@ -158,9 +147,8 @@ КонецПроцедуры Процедура ИсполняемыеСценарииМодуляСОшибкойЧтения() Экспорт - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля(); ОписаниеМодуля.Имя = "ОМ_ЮТЧитатель"; - ОписаниеМодуля.ПолноеИмя = "tests.ОМ_ЮТЧитатель"; ОписаниеМодуля.Расширение = "tests"; #Если Клиент Тогда ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 55c8effa5..f52122978 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -29,6 +29,7 @@ .ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста") .ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста") .ДобавитьТест("ПроверкаКонтекста") + .ДобавитьТест("Окружение") ; КонецПроцедуры @@ -74,10 +75,10 @@ ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); #Если Сервер Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(18); // Количество вызванных обработчиков событий + .ИмеетДлину(20); // Количество вызванных обработчиков событий #Иначе ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(16); // Количество вызванных обработчиков событий + .ИмеетДлину(18); // Количество вызванных обработчиков событий #КонецЕсли КонецПроцедуры @@ -151,4 +152,26 @@ КонецПроцедуры #КонецЕсли +Процедура Окружение() Экспорт + + Окружение = ЮТест.Окружение(); + + ЮТест.ОжидаетЧто(Окружение) + .Заполнено() + .ИмеетТип("Структура") + .Свойство("ВстроенныйЯзык").Равно("ru") + .Свойство("ОбычноеПриложение").Равно(Ложь) + .Свойство("ВебКлиент").Равно(Ложь) + .Свойство("ТолстыйКлиент").Равно(Ложь) + .Свойство("ВерсияПлатформы") + .Свойство("ФайловаяБаза") + .Свойство("ОперационнаяСистемаКлиент") + .Свойство("АрхитектураКлиент") + .Свойство("ОперационнаяСистемаСервер") + .Свойство("АрхитектураСервер") + .Свойство("ИнформационнаяСреда") + ; + +КонецПроцедуры + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" index d4c2412b6..16f09ff8f 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Конструктор") .ДобавитьТест("УстановитьТело") ; diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" index 75dbf50d6..eadc93c2d 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Инициализировать") .ДобавитьТест("Добавить") .ДобавитьТест("MoveFirst") diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" index 34414c2fd..996b5b20a 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("ТестовыеДанные") .ДобавитьТест("Установить") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("Фикция") diff --git "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" index 5ab296940..d6dca64a2 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" @@ -20,32 +20,32 @@ Процедура Расш1_ПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт // Собираем параметры в массив - ПараметрыМетода = Мокито.МассивПараметров(Источник, Отказ); - - // Отправляем данные на анализ - ПрерватьВыполнение = Ложь; - МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение); - - // Обрабатываем результат анализа - Если НЕ ПрерватьВыполнение Тогда - ПродолжитьВызов(Источник, Отказ); - КонецЕсли; - + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Источник, Отказ); + + // Отправляем данные на анализ + ПрерватьВыполнение = Ложь; + МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение); + + // Обрабатываем результат анализа + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Источник, Отказ); + КонецЕсли; + КонецПроцедуры &Вместо("ПередЗаписьюСправочника") Процедура Расш1_ПередЗаписьюСправочника(Источник, Отказ) Экспорт // Собираем параметры в массив - ПараметрыМетода = Мокито.МассивПараметров(Источник, Отказ); - - // Отправляем данные на анализ - ПрерватьВыполнение = Ложь; - МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение); - - // Обрабатываем результат анализа - Если НЕ ПрерватьВыполнение Тогда - ПродолжитьВызов(Источник, Отказ); - КонецЕсли; - + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Источник, Отказ); + + // Отправляем данные на анализ + ПрерватьВыполнение = Ложь; + МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение); + + // Обрабатываем результат анализа + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Источник, Отказ); + КонецЕсли; + КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" similarity index 56% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" rename to "tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" index fe30562ee..51f2fb843 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\272\320\260\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" @@ -18,33 +18,15 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ЛокальПлатформы() Экспорт +Функция Мокирование() Экспорт - Возврат ТекущийЯзыкСистемы(); + ЮТТесты.Тег("Мокирование"); + Возврат ТегиТестов; КонецФункции -Функция ЭтоАнглийскаяЛокальПлатформы() Экспорт - - Возврат ЛокальПлатформы() = "en"; - -КонецФункции - -Функция ЭтоРусскаяЛокальПлатформы() Экспорт - - Возврат ЛокальПлатформы() = "ru"; - -КонецФункции +#КонецОбласти -Функция ЛокальИнтерфейса() Экспорт - -#Если Клиент Тогда - Возврат ТекущийЯзык(); -#Иначе - Возврат ТекущийЯзык().КодЯзыка; -#КонецЕсли - -КонецФункции +#Область СлужебныеПроцедурыИФункции #КонецОбласти - diff --git "a/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..fafb8bd59 --- /dev/null +++ "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,11 @@ + + + ТегиТестов + + ru + Теги тестов + + true + true + true + diff --git "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 8e2bcd7db..ade1e0061 100644 --- "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -23,7 +23,7 @@ Результат = Новый Массив(); Модуль = ОписаниеТестовогоМодуля(); Набор = ОписаниеТестовогоНабора(Модуль); - Тест = ОписаниеТеста(Набор); + Тест = ОписаниеТеста(Модуль, Набор); Набор.Тесты.Добавить(Тест); Модуль.НаборыТестов.Добавить(Набор); Результат.Добавить(Модуль); @@ -35,13 +35,13 @@ Функция ОписаниеТестовогоМодуля(ИмяМодуля = Неопределено) Экспорт Описание = Новый Структура(); - Описание.Вставить("МетаданныеМодуля", ЮТФабрикаСлужебный.ОписаниеМодуля()); + Описание.Вставить("Метаданные", ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля()); Описание.Вставить("НаборыТестов", Новый Массив); Описание.Вставить("Ошибки", Новый Массив); Описание.Вставить("НастройкиВыполнения", Новый Структура); + Описание.Вставить("Теги", Новый Массив()); - Описание.МетаданныеМодуля.Имя = СлучайнаяСтрокаЕслиНеопределено(ИмяМодуля); - Описание.МетаданныеМодуля.ПолноеИмя = ЮТТестовыеДанные.СлучайнаяСтрока() + "." + Описание.МетаданныеМодуля.Имя; + Описание.Метаданные.Имя = СлучайнаяСтрокаЕслиНеопределено(ИмяМодуля); Возврат Описание; @@ -55,8 +55,6 @@ Описание.Вставить("Теги", Новый Массив()); Описание.Вставить("Ошибки", Новый Массив()); Описание.Вставить("Режим", ""); - Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); - Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); Описание.Вставить("Тесты", Новый Массив); Описание.Вставить("Выполнять", Истина); Описание.Вставить("ДатаСтарта", 0); @@ -67,18 +65,15 @@ КонецФункции -Функция ОписаниеТеста(Набор) Экспорт +Функция ОписаниеТеста(Модуль, Набор) Экспорт - ТестовыйМодуль = Набор.ТестовыйМодуль; ИмяМетода = ЮТТестовыеДанные.СлучайнаяСтрока(); - ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, ИмяМетода); Представление = ИмяМетода + "()"; ОписаниеТеста = Новый Структура; ОписаниеТеста.Вставить("Имя", Представление); ОписаниеТеста.Вставить("Метод", ИмяМетода); - ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); ОписаниеТеста.Вставить("Теги", Новый Массив); ОписаниеТеста.Вставить("Режим", Набор.Режим); ОписаниеТеста.Вставить("ДатаСтарта", 0); diff --git "a/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" "b/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" new file mode 100644 index 000000000..2a2beee60 --- /dev/null +++ "b/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" @@ -0,0 +1,29 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ) Экспорт + + Если ЮТест.КонтекстТеста() <> Неопределено И ЮТест.КонтекстТеста().Свойство(МетаданныеМодуля.Имя) Тогда + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..4c6f31da8 --- /dev/null +++ "b/tests/src/CommonModules/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,11 @@ + + + ФильтрацияЗагрузкиТестов + + ru + Фильтрация загрузки тестов + + true + true + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 19ac4171e..cabfbdade 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -65,7 +65,9 @@ CommonModule.ПодпискиНаСобытия CommonModule.Пользователи CommonModule.ПомощникТестированияВызовСервера + CommonModule.ТегиТестов CommonModule.ТестовыеДанные + CommonModule.ФильтрацияЗагрузкиТестов Catalog.Встречи Catalog.Товары Document.ПриходТовара diff --git "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" index 5db6d642a..749811bd4 100644 --- "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" +++ "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" @@ -19,7 +19,7 @@ &Вместо("ОбработкаПроведения") Процедура Расш1_ОбработкаПроведения(Отказ, Режим) - ПараметрыМетода = Мокито.МассивПараметров(Отказ, Режим); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Отказ, Режим); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" index ca4460b4f..85a9ace4b 100644 --- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" +++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" @@ -19,7 +19,7 @@ &Вместо("ЗаполненоКорректно") Процедура Расш1_ЗаполненоКорректно(НаборЗаписей) Экспорт - ПараметрыМетода = Мокито.МассивПараметров(НаборЗаписей); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(НаборЗаписей); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" index c4786acf4..2e40cdb5c 100644 --- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" +++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" @@ -19,7 +19,7 @@ &Вместо("ПередЗаписью") Процедура Расш1_ПередЗаписью(Отказ, Замещение) - ПараметрыМетода = Мокито.МассивПараметров(Отказ, Замещение); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Отказ, Замещение); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); @@ -33,7 +33,7 @@ &Вместо("ОбработкаПроверкиЗаполнения") Процедура Расш1_ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - ПараметрыМетода = Мокито.МассивПараметров(Отказ, ПроверяемыеРеквизиты); + ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(Отказ, ПроверяемыеРеквизиты); ПрерватьВыполнение = Ложь; МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение); diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..4ef01163c --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,12 @@ + + + ЗагрузкаТестов + + ru + Загрузка тестов + + true + true + CommonModule.ФильтрацияЗагрузкиТестов + Subsystem.Тесты_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" index 487d28eae..8b82dbe22 100644 --- "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" @@ -6,6 +6,7 @@ Обработчики событий true + ЗагрузкаТестов Инициализация Subsystem.Тесты_ЮТПодключаемыеМодули