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

[NEW] Проверка на время выполнения тестируемого метода #411

Open
1cgh opened this issue Sep 19, 2024 · 7 comments
Labels
Регистрация (настройка) тестов Функциональность регистрации тестов и их настройки Сомнение Есть сомнение в необходимости

Comments

@1cgh
Copy link
Contributor

1cgh commented Sep 19, 2024

Описание сценария (кейса) использования, применения

Не совсем про функциональное тестирование, не уверен, что это стоит в принципе реализовывать :) Задача: вызывать тестируемый метод и проверить, что он выполнился за N мс. Если метод не успевает в таймаут, его выполнение надо прервать, а тесту упасть.

Вариант реализации новой функциональности

Видимо, через запуск тестируемого действия через фоновое задание и ожидание его завершения. Если не дождались - убиваем фоновое.

Дополнительная информация

  1. В простом варианте можно было бы просто получить время до выполнения действия и после, вычислить длительность, сравнить с таймаутом и упасть/не упасть. Т.е. ничего в движке не дорабатывать, это и сейчас так можно сделать. Но есть нюанс, что если метод выполняется дольше таймаута, то его надо срубать, а не ждать до конца.
  2. Реализация через ФЗ пока создает проблемы с тем, что мокирование не будет работать.
@theshadowco
Copy link
Contributor

Могут быть траблы связанные с разной загруженностью машины, на которой будет выполняться тест

@alkoleft
Copy link
Member

alkoleft commented Sep 19, 2024

Вообще случаев и причин выхода за таймаут может быть много.

  • Разные машины
  • Загруженность
  • Данные базы
  • Версия платформы

Я сталкивался с подобным уже, это все приводит к танцам с бубнами по корректировке теста.

@1cgh Сможешь описать кейсы где это нужно? Откуда родилась такая потребность?

Может задачу можно закрыть пост анализом отчета.

@alkoleft alkoleft added Сомнение Есть сомнение в необходимости Регистрация (настройка) тестов Функциональность регистрации тестов и их настройки labels Sep 19, 2024
@zerobig
Copy link
Contributor

zerobig commented Oct 23, 2024

День добрый.

Мысль о таком функционале меня посетила когда тесты стали зависать. Причем, причины зависания совсем не понятны. Один и тот же набор тестов. То зависнет, то нормально отработает. А поскольку эффект проявляется на достаточно большом наборе тестов (более 200), то выявить закономерность оказалось затруднительно.

Вот и подумалось. Unit-тесты ведь достаточно быстрая вещь. Речь идёт о миллисекундах. Если тест длится секунды (без учета создания и удаления тестовых данных), то это повод присмотреться либо к алгоритму, либо к тесту. Я уже не говорю о десятках или о сотнях секунд. Это Unit-тест. Не нагрузочный, не интеграционный. Unit. Всё.

Такой механизм позволил бы снять зависший тест и продолжить выполнение всего процесса. А то получается что из-за зависания одного какого-то теста остались без информации о работоспособности кода вообще. Как-то не хорошо получается.

@alkoleft
Copy link
Member

Вот только как реализовать такой вариант, для серверных вызовов конечно можно использовать фоновые, не это кажется может вызвать и негативные последствия.

Возникла мысль - использовать отладчик и с его помощью прерывать выполнение.

На текущий момент можно анализировать результат тестирования, небольшим скрипом вывести долгие тесты, а также использовать логирование чтобы понять на чем зависло.

@alkoleft
Copy link
Member

alkoleft commented Oct 23, 2024

@zerobig мысли это хорошо и их все нужно фиксировать. Но не все можно сделать на текущий момент, возможно когда так в будущем

@zerobig
Copy link
Contributor

zerobig commented Oct 23, 2024

Я прекрасно понимаю сложность реализации подобного функционала.

И да, хочу ещё раз поблагодарить за прекрасный продукт! Ваша работа значительно облегчает нашу (всех программистов 1С) жизнь!

А так же хочу напомнить, что мои комментарии и issues призваны не критиковать, а сделать ваш продукт лучше. Мне, например, почти не пишут issues. И я каждому радуюсь как в первый раз - значит моей разработкой пользуются, значит мой код кому-то нужен!

С надеждой что улучшил ваше излишне философское настроение.
Бушин илья

@alkoleft
Copy link
Member

@zerobig Спасибо за теплые слова. По поводу issue, как критика они ни в коем случае не воспринимаются. issues помогают лучше понимать требования и желания пользователей и помогают создать хороший продукт, как бы банально это не звучало именно так я к ним отношусь.

Это не философское настроение, это отсутствие хорошей идеи для реализации, ей просто нужно время чтобы созреть. Например, в задаче по code coverage я посмотрю и изучу возможности отладчика, а точнее как с ним интегрироваться, возможно это поможет в этой задаче.

И в догонку, не всегда ясна проблема, которую люди хотят решить, поэтому задаю вопросы, возможно не всегда тактичные, но я работаю над этим.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Регистрация (настройка) тестов Функциональность регистрации тестов и их настройки Сомнение Есть сомнение в необходимости
Projects
None yet
Development

No branches or pull requests

4 participants