Как ускорить py.test

Есть ли способ ускорить повторное выполнение py.test ? Кажется, что он тратит много времени на сбор тестов, даже если я укажу, какие файлы выполнять в командной строке. Я знаю, что это не проблема скорости диска, так как запуск pyflakes по всем файлам .py очень быстр.

  • Запрос пароля в IPython ноутбуке
  • Введенный график Matplotlib в Tkinter падает на Python 3.5
  • Как создать регулярные точки на цилиндрической поверхности
  • PIL Преобразование PNG или GIF с прозрачностью в JPG без
  • Построение эллипсоида с помощью Matplotlib
  • Супер странная ошибка os.path.abspath
  • Предотвращение ошибки памяти в itertools.permutation
  • Как работает функция scipy distance_transform_edt?
  • 5 Solutions collect form web for “Как ускорить py.test”

    Использование опции norecursedirs в pytest.ini или tox.ini может сэкономить много времени на сбор, в зависимости от того, какие другие файлы у вас есть в вашем рабочем каталоге. Время моей коллекции примерно вдвое сокращено для набора из 300 тестов, когда у меня есть это на месте (0,34 с против 0,64).

    Если вы уже используете ток, как я, вам просто нужно добавить следующее в ваш tox.ini:

     [pytest] norecursedirs = docs *.egg-info .git appdir .tox 

    Вы также можете добавить его в отдельностоящий файл pytest.ini.

    Документация pytest содержит более подробную информацию о файлах конфигурации py.test .

    У меня была такая же проблема, когда я вызывал py.test в корень моего проекта, и мои тесты были тремя подкаталогами вниз. Сбор составлял 6-7 секунд до 0,4 секунды фактического выполнения теста.

    Первоначально мое решение состояло в том, чтобы вызвать py.test с относительным путем к тестам:

     py.test src/www/tests/ 

    Если это ускоряет и вашу коллекцию, вы можете добавить относительный путь к тестам в конец настройки addopts в вашем pytest.ini – например:

     [pytest] addopts = --doctest-glob='test_*.md' -x src/www/tests/ 

    Это уменьшило время py.test + время до около секунды, и я все еще мог просто вызвать py.test как и раньше.

    В специальном случае, когда вы работаете под python cygwin, его обработка файлов в стиле unix выполняется медленно. См. Тест pytest.py очень медленный запуск в cygwin для того, как ускорить работу в этой особой ситуации.

    С помощью xdist вы можете распараллеливать запуск py.test. Это позволяет даже отправлять тесты на удаленные компьютеры. Зависит от вашей настройки, он может ускориться совсем немного 🙂

    Если у вас запущено антивирусное программное обеспечение, попробуйте отключить его. У меня была такая же проблема. Сбор тестов проходил невероятно медленно. Это оказалось моим антивирусным программным обеспечением (Avast), которое вызывало проблему. Когда я отключил антивирусное программное обеспечение, коллекция тестов работала примерно в пять раз быстрее. Я тестировал его несколько раз, включив и выключил антивирус, поэтому я не сомневаюсь, что это было причиной в моем случае.

    Python - лучший язык программирования в мире.