Отличное видео. Пересмотрел штук 10 видео по unittest-ам, но только это видео сформировало полную картину происходящего. Спасибо, жду продолжение с нетерпением)
Отличный урок! Понравилось то, что автор не лезет в охват всего и вся. Чётко показывает: что и как работает, как соединяются тесты и сама программа. В общем лайк. Мне unittest как раз понравился тем, что он встроенный в Python. Спасибо! Пожалуйста продолжайте!
Специально вернулась, чтобы оставить коммент и выразить ОГРОМНУЮ благодарность за видео! Делаю сейчас свой дипломный проект, и ваше видео очень помогло с написанием юнит-тестов для БЕРТ-модели. Спасибо от всей души! Сделала подробный конспект, чтобы всегда был под рукой 🤗🤗🤗🥰🥰🥰
@@PythonRussian это нейронка, которая в моем случае делает классификацию позитивных и негативных текстовых сообщений. На нее тесты непростые, и ваша схема оформления оказалась для меня просто идеальной ❤️
Если у кого не работает юниттесты по примеру автора (как не работало и у меня), то можно поробовать так: 1. добавляем Unittests -> Custom 2. в окошке Additionfl Arguments добавить: discover -s tests -p '*_test.py' 3. в окошке Working directory выбрать папку в которой лежат и тестируемый модуль и папка с тестами. Т.е. папка, которая на уровень выше, чем модуль и папка с тестами. За урок спасибо, все норм!
на самом деле это очень полезное желание, я сейчас без этого просто проект никакой не начинаю, потому что его просто потом сложно поддерживать, менять, рефакторить. Нет уверенности после правок, а с тестами, если не лениться и набраться опыта есть уверенность в том, что все сделано верно.
@@PythonRussianнаписал несколько. Глаз радуется этим зелёным галочкам. Рад, как ребенок, что у меня теперь будут нормальные тесты. Осталось coverage подключить.
Спасибо за контент, нашёл просто кучу ответов на свои вопросы, с которыми столкнулся в процессе погружения в питон. Особенная благодарность за тесты и гит, наглядно и доступно. Успехов в развитии и большая просьба не останавливаться у вас очень хорошо получается!)
На 16:51 ведь TypeError не может упасть, так как мы изначально преобразовываем в int и даже если там строка будет с буквами или с float то будет падать ValueError? Или есть ещё случаи когда может упасть TypeError в этом случае?
Очень хотелось бы посмотреть видео про рефакторинг кода. Где бы рассказывалось про запахи кода, хорошего тона и как лучше где что делать) Невероятно востребованная и "хайповая" тема, которая неприменно зайдёт для всех) Надеюсь прислушаетесь.
17:30 калькулятор работает только с положительными числами, ввод -2-3 выдаст ошибку вместо -5. 26:07 тест деления не проверяет, что в ответе float. self.assertEqual(calculator('10/5'), 2) выдаст ОК, когда должно быть 2.0 решение первой проблемы - переделывать калькулятор, а как решить вторую?
def calculator(expression): allowed = '/*+-' if not any(sign in expression for sign in allowed): raise ValueError(f'Выражение должно содержать хотя бы один знак({allowed})') for sign in allowed: if sign in expression: try: left, right = expression.split(sign) left, right = int(left), int(right) return { '+': lambda x, y: x + y, '-': lambda x, y: x - y, '*': lambda x, y: x * y, '/': lambda x, y: x / y }[sign](left, right) except(ValueError, TypeError): raise ValueError(f'Выражение должно содержать два целых числа и только один знаки вида: ({allowed})') except(ZeroDivisionError): print("Что-то пошло не так...")
для питона могу вспомнить Барйана Оккена и его книгу о питесте. Я же по факту из джавы пришел и все теорию освоил еще там, потому рекомендую те книги и читать, пусть там примеры и на джаве. "Test Patterns Refactoring Test Code" by Gerard Meszaros - это отец терминов фейк, мок, дамми, стаб, рекомендую. "Разработка через тестирование" Кента Бека - это отец нЮнит фреймворков и ТДД. "Refactoring: Improving the Design of Existing Code" by Martin Fowler - Мартин просто красавчик, в этой книге много полезного по рефакторингу, чистому коду и тестам. Можно даже начать с последней. Есть еще "Test-Driven Python Development" от какого-то индуса, но чего то не запомнилось мне, не могу сказать хорошая ли.
кажется в видео говорил (но мог забыть) - активна в полной версии пичарма. Без нее можно установить coverage и через терминал запускать, но уже не так удобно
не понял что значит программа собирается апи, но тесты остаются всегда в проекте, их заливают в общий репозиторий как раз для того чтобы любой разработчик мог их прогнать. Более того, при сборке продукта или добавлении любого изменения тоже автоматически прогоняются тесты - чтобы убедиться, что все в норме. Тебе дают задачу написать какую то новую фичу -ты пишешь ее, прогоняешь тесты (что ничего не сломал) и еще добавляешь тесты на то, что написал. Все это идет в продукт, код+тесты для него.
@@PythonRussian спасибо за ответ, именно это я и хотел узнать..Я учусь писать на питоне приложения для смартфонов с помощью KivyMD, они после сборки много весят,плюс тесты, вообщем начинаю думать, что питон пока не лучшее решение для написание приложений)) Огромное вам спасибо, ваши видео очень полезные и лёгкие для восприятия!
К великому сожалению кнопка coverage активна лишь в платно Пучаре (ну или я просто не доразобрался в настроках, но мало вероятно). А как было бы круто - запустил - и сразу видишь, где не покрыто...))
тут видишь в чем дело - сам код никак такое поведение не отрабатывал. То есть если мы такой тест добавим то что проверим? Что питон кидает исключение при делении на 0? так это в тестах самого питона проверено. Что наш код такое не обрабатывает?
посмотри в плагинах, Dark purple theme вроде называется, по слову purple легко найти, плагин устанавливаешь и можно тему выбрать. Мне дюже по нраву пришлась
А есть ли возможность самому задать порядок выполнения тестовых методов? Как я понял, они выполняются в алфавитном порядке, то есть, например в таком: test_attack test_end_move test_go test_begin_move Но мне для тестирования важен порядок выполнения тестов, то есть например, такой: test_begin_move test_go test_attack test_end_move Не хотелось бы все методы (begin_move, go, attack, end_move) располагать в одном тестирующем методе, поэтому возник вопрос, возможно ли задать порядок, в котором выполняются тестовые методы?
обычно это означает что ты что-то делаешь не так, тесты должны быть независимы друг от друга. Если тебе для теста какой то функции нужно, чтобы система была в каком то состоянии (например сделан ход), то конкретно для этого теста можешь сделать сет_ап, подготовку такой ситуации. Но привязывать тесты к друг другу обычно плохая практика. Можно подумать о разюивке на классы, где в 1 классе те, что не требуют подготовки, в другом с подготовкой и т.д.
возможно в этом году, я как раз хотел тему парсинга немного затронуть, рассказать про селениум как его правильно настроить и установить. А вот пейдж-обджект немного сложнее в том плане что я пока вообще не затрагивал в видео паттерны и ООП, какой то резкий скачок получится. Но попробовать можно, записал в планы.
Для ленивых def calculator(expression): """Функция калькулятор""" allowed = '+-*/' if not any(sign in expression for sign in allowed): raise ValueError(f'Выражение должно содержать хотя бы один знак ({allowed})') for sign in allowed: if sign in expression: try: left, right = expression.split(sign) left, right = int(left), int(right) return { '+': lambda a, b: a + b, '-': lambda a, b: a - b, '*': lambda a, b: a * b, '/': lambda a, b: a / b, }[sign](left, right) except (ValueError, TypeError): raise ValueError('Выражение должно содержать 2 целых числа и один знак') if __name__ == '__main__': print(calculator('10/5')) ------------------------------------------------------------------- from unittest import TestCase, main from calculator import calculator class CalculatorTest(TestCase): """Тесты для функции calculator""" def test_plus(self): """Тест функции плюс""" self.assertEqual(calculator('2+2'), 4) def test_minus(self): """Тест функции минус""" self.assertEqual(calculator('5-3'), 2) def test_multi(self): """Тест функции умножения""" self.assertEqual(calculator('5*3'), 15) def test_divide(self): """Тест функции деления""" self.assertEqual(calculator('10/5'), 2.0) if __name__ == '__main__': main()
Почему-то при попытке запустить кейс вот такая ошибка валится, уже второй час не могу разобраться помогите плз: "C:\Program Files (x86)\Python\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pycharm\_jb_pytest_runner.py" --target test_summary_func.py::TestSumm Testing started at 2:00 ... Launching pytest with arguments test_summary_func.py::TestSumm in C:\Users\it2g\PycharmProjects\probe INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\main.py", line 90, in wrap_session INTERNALERROR> config._do_configure() INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\config.py", line 839, in _do_configure INTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self)) INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 729, in call_historic INTERNALERROR> self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 338, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 333, in INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute() INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 596, in execute INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\assertion\__init__.py", line 70, in pytest_configure INTERNALERROR> warn_about_missing_assertion(mode) INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\assertion\__init__.py", line 159, in warn_about_missing_assertion INTERNALERROR> assert False INTERNALERROR> AssertionError Process finished with exit code 3 Empty suite Empty suite Что можно сделать?
интересно продолжение темы юнитов?
Отличное видео. Пересмотрел штук 10 видео по unittest-ам, но только это видео сформировало полную картину происходящего. Спасибо, жду продолжение с нетерпением)
@@ИванБалалайка-г5е сделаю в ближайшее время
Естественно! Очень классно всё рассказано, не первое Ваше видео смотрю, единственное что, немного погромче бы)
@@exe88cution да со звуком чего нибудь подумаю. По тестам будет продолжение -углубление по юниттесту и посмотрим на питест.
Конечно!
Отличный урок! Понравилось то, что автор не лезет в охват всего и вся. Чётко показывает: что и как работает, как соединяются тесты и сама программа. В общем лайк. Мне unittest как раз понравился тем, что он встроенный в Python. Спасибо! Пожалуйста продолжайте!
Специально вернулась, чтобы оставить коммент и выразить ОГРОМНУЮ благодарность за видео! Делаю сейчас свой дипломный проект, и ваше видео очень помогло с написанием юнит-тестов для БЕРТ-модели. Спасибо от всей души! Сделала подробный конспект, чтобы всегда был под рукой 🤗🤗🤗🥰🥰🥰
рад что помог, хотя и не знаю что за берт-модель
@@PythonRussian это нейронка, которая в моем случае делает классификацию позитивных и негативных текстовых сообщений. На нее тесты непростые, и ваша схема оформления оказалась для меня просто идеальной ❤️
Супер! Спасибо. Хочется продолжения темы. У вас талант, объясняете очень доходчево.
Спасибо, за видео. Все никак руки не доходили до тестов. Все понятно и по делу.
Для меня, как для начинающего программиста языка Python все очень даже понятно и интересно! спасибо тебе за урок
Если у кого не работает юниттесты по примеру автора (как не работало и у меня), то можно поробовать так:
1. добавляем Unittests -> Custom
2. в окошке Additionfl Arguments добавить: discover -s tests -p '*_test.py'
3. в окошке Working directory выбрать папку в которой лежат и тестируемый модуль и папка с тестами. Т.е. папка, которая на уровень выше, чем модуль и папка с тестами.
За урок спасибо, все норм!
Огромное спасибо! Очень круто и доходчиво все объяснено!
Спасибо большое. Смотрю уроки с огромным интересом!
Всё. Перехожу с асертов на юниты. Прям огромное желание появилось юнит тесты писать. Благодарю
на самом деле это очень полезное желание, я сейчас без этого просто проект никакой не начинаю, потому что его просто потом сложно поддерживать, менять, рефакторить. Нет уверенности после правок, а с тестами, если не лениться и набраться опыта есть уверенность в том, что все сделано верно.
@@PythonRussianнаписал несколько. Глаз радуется этим зелёным галочкам. Рад, как ребенок, что у меня теперь будут нормальные тесты. Осталось coverage подключить.
Спасибо за контент, нашёл просто кучу ответов на свои вопросы, с которыми столкнулся в процессе погружения в питон. Особенная благодарность за тесты и гит, наглядно и доступно. Успехов в развитии и большая просьба не останавливаться у вас очень хорошо получается!)
Крутой контент, спасибо. И чувствуется бест практис в подаче материала. Класс.
Ты просто супер! Всё доходчиво и понятно! Спасибо тебе.
Очень нужное и полезное видео👏
спасибо, буду продолжать
@@PythonRussian нужное дело 🙏
Шикарная подача материала, спасибо! Очень хотелось бы видео про Mock
будет, но по срокам не скажу, как со временем станет посвободнее
@@PythonRussian ждём 👍
Спасибо за видео!
Написал тестовое на вакансию по твоему видео))
желаю удачи!
Отличное видео! Сразу можно использовать в работе. Спасибо
спасибо, по юнитам планирую еще несколько видео снять
Спасибо за полезное видео. Интересное введение в тестирование. Спасибо за альтернативу if
Спасибо огромное! Все по делу все понятно. Вполне воспроимчиво и на скорости 2х
Супер, спасибо. Хочется продолжения этой темы
За словарь отдельный респект.
Спасибо огромное!
Очень разжевал)
Очень жду видео о Mock
будет, но позже, эта тема уже в списке.
Большое спасибо! Понятно и интересно.
Наглядно. От начала и до конца
Ох, спасибо! Особенно за настройку пайчарма ) кстати, в ТЗ не сказано, что числа должны быть положительными )
я спросил у автора тз, то есть у себя - должны быть положительными =)
Пока учишься главное не забывать привыкать комитить)
Чудесно. Спасибо
Блин, я бы никогда не додумался так написать калькулятор (это комплимент).
Очень полезное видео
великолепно!
18:00 почему на ноль не попробовал поделить? Страшно стало?)
Очень круто и понятно +100500👍. Спасибо
На 16:51 ведь TypeError не может упасть, так как мы изначально преобразовываем в int и даже если там строка будет с буквами или с float то будет падать ValueError? Или есть ещё случаи когда может упасть TypeError в этом случае?
Спасибище!!!
да не за что!
Очень хотелось бы посмотреть видео про рефакторинг кода. Где бы рассказывалось про запахи кода, хорошего тона и как лучше где что делать) Невероятно востребованная и "хайповая" тема, которая неприменно зайдёт для всех) Надеюсь прислушаетесь.
сделаем, но чуть позже
17:30 калькулятор работает только с положительными числами, ввод -2-3 выдаст ошибку вместо -5.
26:07 тест деления не проверяет, что в ответе float. self.assertEqual(calculator('10/5'), 2) выдаст ОК, когда должно быть 2.0
решение первой проблемы - переделывать калькулятор, а как решить вторую?
доступно. Дякую)
Спасибо огромное, очень понятное и полезное видео, но деление на ноль не протестировано - это из самого очевидного
def calculator(expression):
allowed = '/*+-'
if not any(sign in expression for sign in allowed):
raise ValueError(f'Выражение должно содержать хотя бы один знак({allowed})')
for sign in allowed:
if sign in expression:
try:
left, right = expression.split(sign)
left, right = int(left), int(right)
return {
'+': lambda x, y: x + y,
'-': lambda x, y: x - y,
'*': lambda x, y: x * y,
'/': lambda x, y: x / y
}[sign](left, right)
except(ValueError, TypeError):
raise ValueError(f'Выражение должно содержать два целых числа и только один знаки вида: ({allowed})')
except(ZeroDivisionError):
print("Что-то пошло не так...")
но как проверить эту ошибку в юнит тесте?
А какие книги по тестированию Вы можете порекомендовать новичку? С каких книг начать? (Видео очень крутое и полезное. Большое спасибо! 👍)
для питона могу вспомнить Барйана Оккена и его книгу о питесте. Я же по факту из джавы пришел и все теорию освоил еще там, потому рекомендую те книги и читать, пусть там примеры и на джаве. "Test Patterns Refactoring Test Code" by Gerard Meszaros - это отец терминов фейк, мок, дамми, стаб, рекомендую. "Разработка через тестирование" Кента Бека - это отец нЮнит фреймворков и ТДД. "Refactoring: Improving the Design of Existing Code" by Martin Fowler - Мартин просто красавчик, в этой книге много полезного по рефакторингу, чистому коду и тестам. Можно даже начать с последней. Есть еще "Test-Driven Python Development" от какого-то индуса, но чего то не запомнилось мне, не могу сказать хорошая ли.
@@PythonRussian спасибо! 🤝
👍👏
кнопка чтобы посмотреть Coverege не активна . как ее активировать ?
кажется в видео говорил (но мог забыть) - активна в полной версии пичарма. Без нее можно установить coverage и через терминал запускать, но уже не так удобно
Извините за вопрос новичка..А что происходит с тестами когда программа собирается API?? Их убирают ,или они остаются в общем пакете??
не понял что значит программа собирается апи, но тесты остаются всегда в проекте, их заливают в общий репозиторий как раз для того чтобы любой разработчик мог их прогнать. Более того, при сборке продукта или добавлении любого изменения тоже автоматически прогоняются тесты - чтобы убедиться, что все в норме. Тебе дают задачу написать какую то новую фичу -ты пишешь ее, прогоняешь тесты (что ничего не сломал) и еще добавляешь тесты на то, что написал. Все это идет в продукт, код+тесты для него.
@@PythonRussian спасибо за ответ, именно это я и хотел узнать..Я учусь писать на питоне приложения для смартфонов с помощью KivyMD, они после сборки много весят,плюс тесты, вообщем начинаю думать, что питон пока не лучшее решение для написание приложений)) Огромное вам спасибо, ваши видео очень полезные и лёгкие для восприятия!
@@TheRadiant78 я бы посоветовал для мобилок выбрать джаву/котлин, это их территория
К великому сожалению кнопка coverage активна лишь в платно Пучаре (ну или я просто не доразобрался в настроках, но мало вероятно). А как было бы круто - запустил - и сразу видишь, где не покрыто...))
coverage это модуль в питоне, если кнопки нет, то его можно просто установить и запустить руками
Спасибо!
Класс
unittest.mock Objects что такое и зачем нужно?
в документации есть ответ, видео про мок будет явно не скоро
понимаю, что видео не к этому, но очень ждал деление на 0 в тест кейсах
тут видишь в чем дело - сам код никак такое поведение не отрабатывал. То есть если мы такой тест добавим то что проверим? Что питон кидает исключение при делении на 0? так это в тестах самого питона проверено. Что наш код такое не обрабатывает?
Сорри за оффтоп. Какая это тема в PyCharm?
посмотри в плагинах, Dark purple theme вроде называется, по слову purple легко найти, плагин устанавливаешь и можно тему выбрать. Мне дюже по нраву пришлась
@@PythonRussian спасибо
глянул в community edition нет coverege грусть
coverage можно установить через пип и использовать в терминале, правда конечно уже не так показательно.
Можно пожалуйста ссылку на видео про ассерты, если оно осталось
что значит "если осталось"? мы бережем все для вас! ua-cam.com/video/Z3UmS3YlODk/v-deo.html
@@PythonRussian спасибо
А есть ли возможность самому задать порядок выполнения тестовых методов? Как я понял, они выполняются в алфавитном порядке, то есть, например в таком:
test_attack
test_end_move
test_go
test_begin_move
Но мне для тестирования важен порядок выполнения тестов, то есть например, такой:
test_begin_move
test_go
test_attack
test_end_move
Не хотелось бы все методы (begin_move, go, attack, end_move) располагать в одном тестирующем методе, поэтому возник вопрос, возможно ли задать порядок, в котором выполняются тестовые методы?
обычно это означает что ты что-то делаешь не так, тесты должны быть независимы друг от друга. Если тебе для теста какой то функции нужно, чтобы система была в каком то состоянии (например сделан ход), то конкретно для этого теста можешь сделать сет_ап, подготовку такой ситуации. Но привязывать тесты к друг другу обычно плохая практика. Можно подумать о разюивке на классы, где в 1 классе те, что не требуют подготовки, в другом с подготовкой и т.д.
32:50
А у меня вообще весь пайчарм тестируется. Вместо 1 теста запускаются 500+. Хотя у меня всего пара тестов создано
Привет! Когда ждать selenium+pytest+page object? (:
возможно в этом году, я как раз хотел тему парсинга немного затронуть, рассказать про селениум как его правильно настроить и установить. А вот пейдж-обджект немного сложнее в том плане что я пока вообще не затрагивал в видео паттерны и ООП, какой то резкий скачок получится. Но попробовать можно, записал в планы.
на 16:43 исключение не сработает. int обработает что-то типа 5.84 и не подавится
люблю я знатоков из ютуба. А ты попробуй-ка в консоли написать int('5.84') ведь у нас там строка.
@@PythonRussian а ну да, я пробовал float передать
Eval?)
Но нужно быть осторожным. Она попробует исполнить все что ей передадут
Я и без всяких тестов всегда жопой чувствую работает мой код или нет. Правда, пишу только для себя.
Просьба: Если можно, продолжить тему тестирования. Заранее спасибо.
да, все будет, несколько роликов в планах, просто пока нет времени, сделаю
Начало практики 8:38
А могли бы вы сделать шрифт еще меньше, чтобы глаза вытекли?
а вы могли бы смотреть на нормальном мониторе? не на телефоне
@@PythonRussian mac 13 inch кровь из глаз
@@izzzanaaami у тебя тогда проблема со зрением, у меня тоже макбук эйр 13 дюймов, делаю полный экран и все прекрасно вижу
11. 03
Код очень мелкий. На всех ваших видео. Постоянное всматривание не способствует процессу обучения.
ну у меня даже на 13 дюймовов ноуте все нормально видно, не говоря о мониторе компа. Стараюсь и так увеличивать.
Для ленивых
def calculator(expression):
"""Функция калькулятор"""
allowed = '+-*/'
if not any(sign in expression for sign in allowed):
raise ValueError(f'Выражение должно содержать хотя бы один знак ({allowed})')
for sign in allowed:
if sign in expression:
try:
left, right = expression.split(sign)
left, right = int(left), int(right)
return {
'+': lambda a, b: a + b,
'-': lambda a, b: a - b,
'*': lambda a, b: a * b,
'/': lambda a, b: a / b,
}[sign](left, right)
except (ValueError, TypeError):
raise ValueError('Выражение должно содержать 2 целых числа и один знак')
if __name__ == '__main__':
print(calculator('10/5'))
-------------------------------------------------------------------
from unittest import TestCase, main
from calculator import calculator
class CalculatorTest(TestCase):
"""Тесты для функции calculator"""
def test_plus(self):
"""Тест функции плюс"""
self.assertEqual(calculator('2+2'), 4)
def test_minus(self):
"""Тест функции минус"""
self.assertEqual(calculator('5-3'), 2)
def test_multi(self):
"""Тест функции умножения"""
self.assertEqual(calculator('5*3'), 15)
def test_divide(self):
"""Тест функции деления"""
self.assertEqual(calculator('10/5'), 2.0)
if __name__ == '__main__':
main()
Почему-то при попытке запустить кейс вот такая ошибка валится, уже второй час не могу разобраться помогите плз:
"C:\Program Files (x86)\Python\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pycharm\_jb_pytest_runner.py" --target test_summary_func.py::TestSumm
Testing started at 2:00 ...
Launching pytest with arguments test_summary_func.py::TestSumm in C:\Users\it2g\PycharmProjects\probe
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\main.py", line 90, in wrap_session
INTERNALERROR> config._do_configure()
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\config.py", line 839, in _do_configure
INTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 729, in call_historic
INTERNALERROR> self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 333, in
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\vendored_packages\pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\assertion\__init__.py", line 70, in pytest_configure
INTERNALERROR> warn_about_missing_assertion(mode)
INTERNALERROR> File "C:\Users\it2g\AppData\Roaming\Python\Python39\site-packages\_pytest\assertion\__init__.py", line 159, in warn_about_missing_assertion
INTERNALERROR> assert False
INTERNALERROR> AssertionError
Process finished with exit code 3
Empty suite
Empty suite
Что можно сделать?
У тебя точно питест должен быть? В ошибке видно, что тестов нет(empty suit), проверь что они есть и называются в стиле test_something
Слишком много воды в начале видео