Ons python-project heeft een requirements.txt-bestand met een afhankelijke module. Vroeger gebruikten we
pip install -r requirements.txt
om deze afhankelijkheden te installeren. We gebruiken nu tox om de testomgeving op te bouwen. Mijn vraag is hoe we de modules rechtstreeks via requirements.txt kunnen installeren.
Hieronder volgen onze tox.ini en requirements.txt:
tox.ini:
[tox]
envlist=py27
[testenv]
deps=pytest
boto
commands=py.test
vereisten.txt:
boto
Is een manier om de “boto” van tox.ini te verwijderen en iets toe te voegen als
deps_files=requirements.txt
Antwoord 1, autoriteit 100%
deps = -r{toxinidir}/tools/pip-requires
-r{toxinidir}/tools/test-requires
Antwoord 2, autoriteit 47%
Wat me hielp is het volgende (de andere oplossing werkte niet voor mij):
deps=
pytest
-rrequirements.txt
Dit werkt tenminste als je requirements.txt
toevoegt aan MANIFEST.in
en als je een relatief nieuwe `tox (>=1.6.1) versie ( zie hier).
Antwoord 3, autoriteit 35%
Ik had mijn afhankelijkheden al ingesteld zoals in het geaccepteerde antwoord hierboven, maar nieuwe afhankelijkheden werden niet geïnstalleerd zoals ze zijn wanneer tox voor de eerste keer wordt uitgevoerd. Om nieuwe afhankelijkheden in de virtualenv te installeren, moest ik tox dwingen om de omgeving als volgt opnieuw te creëren:
tox --recreate -e py27
[UPDATE: dit probleem zou opgelost moeten zijn in tox
v4]
Antwoord 4, autoriteit 15%
Je kunt afhankelijkheden en testafhankelijkheden in requirements.txt
en requirements.testing.txt
plaatsen om naar de hoofdmap te gaan.
Zet tox.ini
in uw hoofdmap van uw project en u kunt de onderstaande benadering gebruiken om afhankelijkheden te installeren.
[testenv]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/requirements.testing.txt
Naast het upgraden van afhankelijkheden
[testenv]
deps = -Ur{toxinidir}/requirements.txt
-Ur{toxinidir}/requirements.testing.txt