Используйте собственный пакет в tox + pytest - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть приложение на Python, которое я хотел бы протестировать.Это приложение импортирует множество пакетов, например:

import time
import sys
.
.
.
import mypackage

Где mypackage - мой собственный пакет.

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

Collecting mypackage
Could not find a version that satisfies the requirement mypackage (from versions: )
No matching distribution found for mypackage

Я понимаю, что tox не может установить зависимость mypackage, так как она отсутствует в pip.Знаете ли вы, как запустить tox в таком приложении или как установить собственные пакеты с помощью tox?

Содержимое моего файла tox.ini:

[tox]
envlist = py36

[testenv]
deps =
    pytest
    coverage
    time
    sys
    mypackage
commands =
    python setup.py develop
    coverage erase
    coverage run -m pytest myapp/tests/
    coverage report --omit='.tox/*' 

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, что это возможно несколькими способами, если вы используете pip вместо python setup.py:

  1. Вы можете вручную установить зависимость, выполнив pip install /path/to/private/dependency, либоперед установкой пакета, который должен быть проверен или в той же строке.Это имеет (незначительное) преимущество, заключающееся в том, что вы также можете установить свою зависимость в редактируемом режиме с помощью -e.
  2. . Вы можете использовать опцию --find-links для pip install, как объяснено в ответах на этот вопрос. - преимущество в том, что сама обработка зависимостей выполняется автоматически, вы просто указываете свой собственный пакет для установки и сообщаете pip о том, где можно найти другие вещи.Важно отметить, что это также можно указать с помощью переменных среды , поэтому вам не нужно жестко задавать локальные пути в любом месте вашего git-репо.

Примечание: Я не уверен, работает ли option (2) только с git-репо или только с соответствующими архивами ... Я помню, что у меня были проблемы, связанные с --find-links некоторое время назад.

...