Ограничение py.test для запуска только pylint, а не unittests - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь запустить py.test и выполнить только пилинт, но не юнит-тесты.

В документации на этой странице указано, что вы можете это сделать:

https://pypi.org/project/pytest-pylint/

Вы можете ограничить свой тестовый прогон только выполнением проверок цилиндров, а не других тестов, набрав:

  py.test --pylint -m pylint

Но когда я точно запускаю эту команду, я все равно получаю ошибки от юнит-тестовчто py.test найдено.Процесс линтинга, кажется, работает, как ожидалось, затем я получаю кучу ошибок в файлах unittest.Это кажется противоречащим документации.

py.test --version показывает, что я использую 0.14.0:

$ py.test --version
This is pytest version 4.0.0, imported from /usr/local/lib/python3.6/dist-packages/pytest.py
setuptools registered plugins:
  pytest-pylint-0.14.0 at /usr/local/lib/python3.6/dist-packages/pytest_pylint.py

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Ответ от имени комментариев:

Получаете ли вы сообщения об ошибках в коде стиля в модульных тестах или фактические ошибки модульных тестов?- Гедиминас, 7 февраля в 20: 12

Хороший вопрос, в основном ошибки импорта модулей, проблемы с pythonpath в файлах unittest, которые хотя и легко решаются, но и не должны запускаться вообще.Мы хотим, чтобы ошибки lint были только в этой части конвейера Jenkins.Мы определим другую часть конвейера для правильного запуска юнит-тестов.- Дэвид Паркс, 7 февраля в 20: 14

"> в основном это ошибки импорта модулей, проблемы с pythonpath в файлах unittest, которые, хотя и просты, но не должны запускаться вообще. " - Я думаю, что объяснение здесь в том, что pytest пытается загрузить модули модульного тестирования, но фактически не запускает их.-m pylint - фильтр меток, который означает, что должны выполняться только тесты, помеченные как «pylint».Таким образом, pytest должен просмотреть все тесты и проверить их оценки.Я предполагаю, что решение проблем import / pythonpath решит проблему, а py.test --pylint -m pylint будет вести себя так, как ожидается.- Гедиминас 7 февраля в 20: 47

0 голосов
/ 07 февраля 2019

Возможно, это не тот ответ, который вы ищете, но подумайте об использовании Prospector.

Это обертка вокруг нескольких библиотек Python для линтинга, включая pylint, и она может генерировать отчеты xUnit из коробки.

См. https://prospector.readthedocs.io/en/master/usage.html#output-format

...