Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

486 / Запуск тестов по websoket #496

Merged
merged 9 commits into from
Jan 27, 2025
Merged

Conversation

alkoleft
Copy link
Member

@alkoleft alkoleft commented Jan 25, 2025

Описание изменений

Реализован механизм запуска тестов "снаружи" используя web socket

  • Новые параметры запуска (точка подключения)
  • Реализация клиента, слушающего внешние команды по ws (>= 8.3.27 - нативно, < 8.3.27 с использованием https://github.com/dlyubanevich/websocket1c)

  • Добавлены тесты
  • Изменения отражены в документации (при необходимости)

Close #486

Summary by CodeRabbit

Примечания к выпуску

  • Новые возможности

    • Добавлена поддержка WebSocket-соединений для внешнего запуска тестов
    • Расширены параметры подключения к внешним сервисам
    • Улучшена система уведомлений о сохранении отчетов
    • Добавлены новые функции для описания тестов и наборов
  • Улучшения

    • Обновлены обработчики подключения к серверам
    • Расширены возможности генерации отчетов о тестировании
    • Добавлены новые служебные модули для работы с компонентами
    • Улучшена документация по конфигурации и запуску тестов
  • Исправления

    • Оптимизированы механизмы обработки ошибок при подключении
    • Улучшена совместимость с различными версиями платформы
    • Исправлены комментарии и форматирование в документации

Copy link
Contributor

coderabbitai bot commented Jan 25, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Обновление вводит новую функциональность для управления WebSocket-соединениями, специально разработанную для тестовой среды. Добавлен модуль, который экспортирует процедуры для подключения к серверу, уведомлений о отчетах и обработки сообщений. Реализовано множество обработчиков событий соединения, а также процедуры для запуска тестов и обработки результатов. Кроме того, внесены изменения в конфигурационные файлы и другие модули, что расширяет возможности взаимодействия между компонентами системы.

Changes

Файл Изменения
exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl Новый модуль для управления WebSocket-соединениями с процедурами подключения, обработки сообщений и уведомлений
exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl Добавлен обработчик подключения к серверу внешнего управления
exts/yaxunit/src/CommonModules/ЮТОтчетJUnitСлужебный/Module.bsl Добавлены новые функции для описания тестов и наборов
exts/yaxunit/src/Configuration/Configuration.mdo Добавлены новые общие модули и шаблоны
exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl Добавлена новая экспортная переменная для параметров подключения
tests/src/CommonModules/Обр_ЮТHTTPОтвет/Module.bsl Добавлена новая процедура для организации тестов

Assessment against linked issues

Objective Addressed Explanation
Транспорт для отправки команд в предприятие

Possibly related PRs

Suggested labels

bug

Poem

🐰 Кролик-тестер радостно скачет,
WebSocket настроил, всё иначе!
Команды летят через сеть,
Тесты запустить - его цель!
Соединение крепко, как сталь! 🚀


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a468996 and 96092c1.

⛔ Files ignored due to path filters (4)
  • documentation/docs/getting-started/run/images/monaco.png is excluded by !**/*.png
  • documentation/docs/getting-started/run/images/run-button.png is excluded by !**/*.png
  • documentation/docs/getting-started/run/images/run-configuration.png is excluded by !**/*.png
  • documentation/docs/getting-started/run/images/run-from-module.png is excluded by !**/*.png
📒 Files selected for processing (8)
  • documentation/docs/getting-started/run/configuration.md (2 hunks)
  • documentation/docs/getting-started/run/run.md (3 hunks)
  • exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТОтчетJUnitСлужебный/Module.bsl (4 hunks)
  • exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl (3 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТРедакторТестов/Forms/Форма/Module.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТЮнитТесты/Forms/Основная/Module.bsl (1 hunks)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@alkoleft alkoleft marked this pull request as ready for review January 26, 2025 14:39
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (13)
exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl (9)

1-18: Заголовок лицензии корректен, но обращение к копирайту требует проверки.

Проверьте, соответствует ли копирайт фактическому периоду (2021-2025) всем требованиям проекта и не вызывает ли конфликт с иными файлами.


63-84: Реализация ожидания сообщения до 8.3.27 и планировщика запросов.

  1. Использование ПодключитьОбработчикОжидания обеспечивает периодический опрос.
  2. Проверьте, нет ли избыточного нагружения системы при частом опросе (каждый 1 сек/0.2 сек). Это может повлиять на производительность.

122-129: Обработчик открытия соединения.

  1. Отправка приветственного сообщения с версией протокола выглядит уместно.
  2. Желательно логировать также адрес сервера для дополнительной отладки.

130-142: Обработчик получения сообщения.

  1. Запуск теста на основе ключа типа сообщения runTest непосредственно в обработчике – хорошая идея, но возможно вынести в отдельную процедуру для лучшей масштабируемости.
  2. Рекомендуется предусмотреть обработку любых неизвестных типов сообщений.

148-152: Обработчик закрытия соединения.

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

154-163: Отправка сообщения по соединению.

  1. Присутствует корректная обработка исключений, что важно для надёжности.
  2. При неоднократных ошибках отправки стоит рассмотреть более детальный механизм переотправки.

213-218: Оповещение для пользователя + логирование.

  1. Метод ПоказатьОповещениеПользователя и логирование делают взаимодействие более прозрачным.
  2. Следует учитывать, что частые всплывающие уведомления могут мешать работе, особенно при тестировании.

226-234: Функция получения текущего соединения.

  1. Дополнительная проверка на Неопределено повышает устойчивость.
  2. При необходимости обеспечить потоко-безопасность (если это актуально), стоит защитить доступ к общей переменной.

236-249: Обработка ошибки соединения.

  1. Счётчик ограничивает количество попыток. После 5 ошибок соединение сбрасывается.
  2. Возможно, следует логировать текст ошибки или причины. Это упростит анализ.
exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl (2)

3-3: Обновление копирайта на 2025 год.

Убедитесь, что во всех файлах репозитория отражён единый период копирайта, чтобы избежать путаницы.


22-22: Добавление глобальной переменной для хранения параметров подключения.

  1. Переменная отмечена как Экспорт, проверьте, действительно ли нужен экспорт или можно ограничиться локальной областью видимости.
  2. Рекомендуется добавить явное описание (комментарий) назначения переменной.
exts/yaxunit/src/CommonModules/ЮТОтчетJUnitСлужебный/Module.bsl (1)

410-490: Добавление функции для формирования описания отдельного теста.

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

Рекомендации по улучшению:

  1. Добавить документацию к функциям с описанием параметров и возвращаемых значений
  2. Рассмотреть возможность разделения функции на более мелкие для улучшения читаемости
// Формирует описание теста для отчета
//
// Параметры:
//  РезультатТеста - Структура - Результат выполнения теста
//  Статусы - Структура - Статусы выполнения тестов
//
// Возвращаемое значение:
//  Структура - Описание теста
exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl (1)

156-156: Дополните документацию параметра rpc.

Рекомендуется расширить документацию параметра rpc, добавив описание полей структуры:

  • port - номер порта для WebSocket-соединения
  • enable - признак включения внешнего запуска
  • key - ключ авторизации
  • transport - тип транспорта (ws)
-// * rpc - Структура - Параметры внешнего запуска тестов. Параметры запуска тестов из EDT без перезапуска предприятия.
+// * rpc - Структура - Параметры внешнего запуска тестов. Параметры запуска тестов из EDT без перезапуска предприятия:
+//   * port - Число - Номер порта для WebSocket-соединения
+//   * enable - Булево - Признак включения внешнего запуска
+//   * key - Строка - Ключ авторизации
+//   * transport - Строка - Тип транспорта (ws)

Also applies to: 173-173

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10747a5 and a468996.

⛔ Files ignored due to path filters (1)
  • exts/yaxunit/src/CommonTemplates/ЮТWebSocketAddIn/Template.bin is excluded by !**/*.bin
📒 Files selected for processing (18)
  • exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/ЮТВнешнийЗапускТестовСлужебныйКлиент.mdo (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйГлобальный/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl (3 hunks)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТКомпонентыСлужебныйВызовСервера/Module.bsl (3 hunks)
  • exts/yaxunit/src/CommonModules/ЮТКомпонентыСлужебныйКлиент/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТОтчетJUnitСлужебный/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТОтчетСлужебный/Module.bsl (3 hunks)
  • exts/yaxunit/src/CommonModules/ЮТПараметрыЗапускаСлужебный/Module.bsl (2 hunks)
  • exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl (3 hunks)
  • exts/yaxunit/src/CommonTemplates/ЮТWebSocketAddIn/ЮТWebSocketAddIn.mdo (1 hunks)
  • exts/yaxunit/src/Configuration/Configuration.mdo (2 hunks)
  • exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl (3 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТЮнитТесты/Forms/Основная/Module.bsl (2 hunks)
  • tests/src/CommonModules/Обр_ЮТHTTPОтвет/Module.bsl (0 hunks)
💤 Files with no reviewable changes (1)
  • tests/src/CommonModules/Обр_ЮТHTTPОтвет/Module.bsl
✅ Files skipped from review due to trivial changes (3)
  • exts/yaxunit/src/CommonTemplates/ЮТWebSocketAddIn/ЮТWebSocketAddIn.mdo
  • exts/yaxunit/src/CommonModules/ЮТПараметрыЗапускаСлужебный/Module.bsl
  • exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/ЮТВнешнийЗапускТестовСлужебныйКлиент.mdo
👮 Files not reviewed due to content moderation or server errors (4)
  • exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl
  • exts/yaxunit/src/CommonModules/ЮТКомпонентыСлужебныйВызовСервера/Module.bsl
  • exts/yaxunit/src/CommonModules/ЮТКомпоненты/Module.bsl
  • exts/yaxunit/src/CommonModules/ЮТОтчетСлужебный/Module.bsl
🔇 Additional comments (16)
exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl (7)

19-49: Проверка корректности обработки параметров подключения.

  1. Валидация порта и ключа клиента выглядит уместной.
  2. Сообщение об ошибке при неизвестном транспорте помогает быстро понять источник проблемы.
  3. Рекомендуется документировать, что поддерживается только ws, чтобы не было вопросов по другим протоколам.

51-62: Логика отправки оповещения после сохранения отчёта выглядит правильно.

  1. Метод привязан к глобальному хранилищу соединения, что упрощает доступ.
  2. При отсутствии соединения функция корректно завершается без ошибок.

107-120: Подключение для платформы 8.3.27 и выше.

  1. Использование обработчиков (ОбработчикиWebSocketКлиентСоединения) выглядит корректно.
  2. Убедитесь, что МенеджерСоединений будет доступен в среде, где запускается это решение (проверка установки веб-сокета).

165-169: Формирование структуры сообщения.

  1. Аргумент Идентификатор по умолчанию = 0. Убедитесь, не требуется ли генерация уникального идентификатора для многоэтапных транзакций.

171-187: Процедура запуска теста.

  1. Код формирования временного модуля выглядит логичным.
  2. Убедитесь, что client, ordinaryClient и server заполнены корректно, иначе тесты могут выполняться не в той конфигурации.

197-211: Функция формирования отчёта.

  1. Цикл добавляет сформированные структуры отчётов для каждого набора тестов.
  2. Рекомендуется учесть сценарий, если Результат окажется пустым или содержит нестандартный формат.

220-224: Сохранение соединения во внешнюю структуру.

  1. Код краткий и понятный.
  2. Убедитесь, что не происходит перезаписи другого активного соединения по ошибке.
exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйГлобальный/Module.bsl (1)

27-32: Новая процедура периодического опроса WebSocket-соединения.

  1. Вызывается метод ПолучитьСообщениеДо8_3_27(), что важно для обратной совместимости.
  2. Убедитесь, что при платформе 8.3.27+ этот метод всё ещё актуален или вызывает соответствующую логику.
exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl (2)

46-47: Перенос старта логики в общую процедуру ЮТПриНачалеРаботыСистемы.

  1. Правильно использовать централизованное место для инициализации, упрощает дальнейшее сопровождение.
  2. Возможно, стоит добавить проверки среды или параметров перед подключением.

51-51: Изменение аннотации на &После("ОбработкаОтображенияОшибки").

  1. Локализация аннотации может повлиять на совместимость с другими расширениями. Убедитесь, что во всех местах кода стилистика одинакова.
exts/yaxunit/src/CommonModules/ЮТКомпонентыСлужебныйКлиент/Module.bsl (1)

26-26: Добавление компонента WebSocket.

Добавление компонента WebSocket соответствует требованиям PR для реализации внешнего запуска тестов через WebSocket.

exts/yaxunit/src/Configuration/Configuration.mdo (1)

60-60: Регистрация компонентов WebSocket в конфигурации.

Добавление общего шаблона ЮТWebSocketAddIn и общего модуля ЮТВнешнийЗапускТестовСлужебныйКлиент соответствует архитектуре решения для поддержки WebSocket функциональности.

Also applies to: 71-71

exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl (1)

375-375: Добавление параметра безопасности при создании внешней обработки.

Добавление параметра Ложь в вызов ВнешниеОбработки.Создать улучшает безопасность при создании внешних обработок.

exts/yaxunit/src/CommonModules/ЮТОтчетJUnitСлужебный/Module.bsl (1)

374-408: Добавление функции для формирования описания набора тестов.

Функция ОписаниеНабора корректно формирует структурированное описание набора тестов, включая все необходимые метрики (количество тестов, ошибок, пропущенных тестов и т.д.).

exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl (2)

33-33: Обработчик добавлен в правильное место цепочки.

Обработчик ОбработчикПодключитсяКСерверуВнешнегоУправления добавлен после подключения компонентов и перед инициализацией.


368-379: Обработчик реализован корректно.

Обработчик проверяет наличие параметров подключения и флага enable перед вызовом метода подключения к серверу.

Проверим обработку ошибок подключения:

✅ Verification successful

Обработка ошибок реализована корректно

Механизм подключения к серверу включает:

  • Валидацию параметров подключения с информативными сообщениями об ошибках
  • Обработку ошибок соединения через try-catch
  • Механизм переподключения с ограничением попыток
  • Обработчики событий для ошибок WebSocket
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check error handling in WebSocket connection
# Expected: Find error handling code for connection failures

rg -A 5 'ПодключитсяКСерверу'

Length of output: 3799


Script:

#!/bin/bash
# Search for try-catch blocks around WebSocket operations
rg -U "Попытка.*?WebSocket.*?Исключение" -A 10

Length of output: 48


Script:

#!/bin/bash
# Get full implementation of connection method
ast-grep --pattern 'Процедура ПодключитсяКСерверу($$$) $$$'

Length of output: 61


Script:

#!/bin/bash
# Get full content of files containing WebSocket connection implementation
cat "exts/yaxunit/src/DataProcessors/ЮТЮнитТесты/Forms/Основная/Module.bsl"
cat "exts/yaxunit/src/CommonModules/ЮТВнешнийЗапускТестовСлужебныйКлиент/Module.bsl"

Length of output: 43210

@alkoleft alkoleft merged commit a018c0e into develop Jan 27, 2025
2 of 5 checks passed
@alkoleft alkoleft deleted the feature/486 branch January 27, 2025 23:39
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SonarQube Quality Gate failed! failed

bug 0 Bugs
vulnerability 0 Vulnerabilities
code_smell 9 Code Smells

No data Coverage
duplication_5_10 5.15% Duplication


ЮТПараметрыПодключенияКВнешнемуСервису.СчетчикОшибок = ЮТПараметрыПодключенияКВнешнемуСервису.СчетчикОшибок + 1;

Если Критичная Или ЮТПараметрыПодключенияКВнешнемуСервису.СчетчикОшибок > 5 Тогда
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "5" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters  Why is this an issue?

КонецЕсли;

Попытка
Ответ = Соединение.ПолучитьСообщение(100);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "100" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters  Why is this an issue?

ЗапомнитьСоединение(Соединение);

ПодключениеКСерверуОбработчикОткрытияСоединения(Соединение);
ПодключитьОбработчикОжидания("ЮТОпросВебСокетСоединения", 0.2, Истина);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Создайте константу с понятным названием, присвойте ей значение "0.2" и используйте эту константу вместо магического числа.

CODE_SMELL Codesmell  MINOR Minor

badpractice parameters  Why is this an issue?

Процедура ПодключениеВебСокет8_3_27(АдресСервера)

//@skip-check bsl-legacy-check-string-literal
Обработчики = Новый (Тип("ОбработчикиWebSocketКлиентСоединения"), ЮТКоллекции.ЗначениеВМассиве("ПодключениеКСерверуОбработчикОткрытияСоединения",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Уберите инициализацию параметров конструктора вложенными методами

CODE_SMELL Codesmell  MINOR Minor

standard badpractice brainoverload parameters  Why is this an issue?

@@ -363,6 +364,19 @@

КонецПроцедуры

//@skip-check bsl-variable-name-invalid
//@skip-check doc-comment-parameter-section
Процедура ОбработчикПодключитсяКСерверуВнешнегоУправления(_, ПараметрыИсполнения) Экспорт
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Необходимо добавить описание всех параметров метода

CODE_SMELL Codesmell  MAJOR Major

standard badpractice  Why is this an issue?


КонецФункции

Функция ОписаниеТеста(РезультатТеста, Статусы)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Уменьшите когнитивную сложность "ОписаниеТеста" с 28 до 15

CODE_SMELL Codesmell  CRITICAL Critical

brainoverload parameters  Why is this an issue?

ЗаписатьЗначения = Истина;
ЗаписатьСтек = Истина;
ИначеЕсли Статус = Статусы.Пропущен Тогда
ИмяУзла = "skipped";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Синтаксическая конструкция "Если...Тогда...ИначеЕсли..." содержит повторяющиеся блоки кода

CODE_SMELL Codesmell  MINOR Minor

suspicious  Why is this an issue?

@@ -19,6 +19,7 @@
#Область ОписаниеПеременных

Перем ЮТДанныеКонтекста Экспорт;
Перем ЮТПараметрыПодключенияКВнешнемуСервису Экспорт;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Добавьте описание переменной

CODE_SMELL Codesmell  MINOR Minor

standard  Why is this an issue?

@@ -19,6 +19,7 @@
#Область ОписаниеПеременных

Перем ЮТДанныеКонтекста Экспорт;
Перем ЮТПараметрыПодключенияКВнешнемуСервису Экспорт;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔗Не рекомендуется использовать экспортные переменные. Это может стать источником трудновоспроизводимых ошибок

CODE_SMELL Codesmell  MAJOR Major

standard design unpredictable  Why is this an issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Транспорт для отправки команд (запусти тест) в предприятие
1 participant