-
Notifications
You must be signed in to change notification settings - Fork 50
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
Comments
Могут быть траблы связанные с разной загруженностью машины, на которой будет выполняться тест |
Вообще случаев и причин выхода за таймаут может быть много.
Я сталкивался с подобным уже, это все приводит к танцам с бубнами по корректировке теста. @1cgh Сможешь описать кейсы где это нужно? Откуда родилась такая потребность? Может задачу можно закрыть пост анализом отчета. |
День добрый. Мысль о таком функционале меня посетила когда тесты стали зависать. Причем, причины зависания совсем не понятны. Один и тот же набор тестов. То зависнет, то нормально отработает. А поскольку эффект проявляется на достаточно большом наборе тестов (более 200), то выявить закономерность оказалось затруднительно. Вот и подумалось. Unit-тесты ведь достаточно быстрая вещь. Речь идёт о миллисекундах. Если тест длится секунды (без учета создания и удаления тестовых данных), то это повод присмотреться либо к алгоритму, либо к тесту. Я уже не говорю о десятках или о сотнях секунд. Это Unit-тест. Не нагрузочный, не интеграционный. Unit. Всё. Такой механизм позволил бы снять зависший тест и продолжить выполнение всего процесса. А то получается что из-за зависания одного какого-то теста остались без информации о работоспособности кода вообще. Как-то не хорошо получается. |
Вот только как реализовать такой вариант, для серверных вызовов конечно можно использовать фоновые, не это кажется может вызвать и негативные последствия. Возникла мысль - использовать отладчик и с его помощью прерывать выполнение. На текущий момент можно анализировать результат тестирования, небольшим скрипом вывести долгие тесты, а также использовать логирование чтобы понять на чем зависло. |
@zerobig мысли это хорошо и их все нужно фиксировать. Но не все можно сделать на текущий момент, возможно когда так в будущем |
Я прекрасно понимаю сложность реализации подобного функционала. И да, хочу ещё раз поблагодарить за прекрасный продукт! Ваша работа значительно облегчает нашу (всех программистов 1С) жизнь! А так же хочу напомнить, что мои комментарии и issues призваны не критиковать, а сделать ваш продукт лучше. Мне, например, почти не пишут issues. И я каждому радуюсь как в первый раз - значит моей разработкой пользуются, значит мой код кому-то нужен! С надеждой что улучшил ваше излишне философское настроение. |
@zerobig Спасибо за теплые слова. По поводу issue, как критика они ни в коем случае не воспринимаются. issues помогают лучше понимать требования и желания пользователей и помогают создать хороший продукт, как бы банально это не звучало именно так я к ним отношусь. Это не философское настроение, это отсутствие хорошей идеи для реализации, ей просто нужно время чтобы созреть. Например, в задаче по code coverage я посмотрю и изучу возможности отладчика, а точнее как с ним интегрироваться, возможно это поможет в этой задаче. И в догонку, не всегда ясна проблема, которую люди хотят решить, поэтому задаю вопросы, возможно не всегда тактичные, но я работаю над этим. |
Описание сценария (кейса) использования, применения
Не совсем про функциональное тестирование, не уверен, что это стоит в принципе реализовывать :) Задача: вызывать тестируемый метод и проверить, что он выполнился за N мс. Если метод не успевает в таймаут, его выполнение надо прервать, а тесту упасть.
Вариант реализации новой функциональности
Видимо, через запуск тестируемого действия через фоновое задание и ожидание его завершения. Если не дождались - убиваем фоновое.
Дополнительная информация
The text was updated successfully, but these errors were encountered: