Как запустить тесты Python против нескольких сред Python conda? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть несколько тщательно настроенных conda сред, созданных с использованием Anaconda.Я написал пакет Python, который использует некоторые из пакетов и библиотек, установленных в этих средах.Теперь я хотел бы запустить тесты с каждым тестовым файлом, выполняемым для каждой среды, чтобы убедиться, что пакет может обрабатывать работу с различными версиями Python и различным набором доступных пакетов сторонних производителей.

Использование tox didне работает для меня, потому что он пытается воссоздать эти среды локально для запуска тестов.Вот как выглядит мой tox.ini файл:

[tox]
envlist = py36, py27
skipsdist = True

[testenv]
basepython = 
    py36: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe
    py27: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe

commands = 
    {envpython} -m unittest discover

Однако невозможно просто сделать pip install в средах, которые tox создает при каждом запуске, в основном из-за того, что есть некоторые скомпилированные библиотеки иОбходные пути (которые решаются в среде conda - поэтому я должен использовать их как есть).

В настоящее время у меня есть фиктивный файл .bat со следующим содержимым:

"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe" -m unittest discover
"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe" -m unittest discover

, который я выполняю в Windows cmd, чтобы увидеть результаты.Это работает, но мне интересно, есть ли еще какой-нибудь Pythonic способ запустить эти тесты, такие как py.test или tox.Я не хочу воссоздавать окружение conda, которое у меня уже есть;Я просто хочу использовать разные интерпретаторы Python, доступные в разных местах для выполнения моих тестов.

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете посмотреть в pytest-xdist плагин .Это позволяет запускать тесты в разных средах Python.

Использование:

pytest --dist=each --tx popen//python=python3.5 --tx popen//python=python2.7
...