2016-12-04 5 views
3

Я использую tox для тестирования пакетов python. Теперь, когда у python 2.7.13 есть кандидат на выпуск, как я могу протестировать эту версию с помощью tox без немедленной замены моей текущей версии python 2.7 для нормального использования?временное использование версии релиза python version in tox

Я знаю, как указать путь для python при создании virtualenv, а затем я смогу установить и запустить py.test. Токс создает свой собственный virtualenv, и я не знаю, как влиять на версию python, установленную после выбора py27, py26, py35.

Как я могу это решить?

ответ

0

Вы можете повлиять на это с помощью PATH, расширив PATH до вызова tox (по крайней мере, на Linux, возможно, не на Windows).

Чтобы получить более мелкий контроль и заставить его работать в Windows (где AFAIK вы не можете установить переменную среды для использования одной команды, например, в Unix/Linux), вы можете использовать пакет расширения токсичности tox-globinterpreter (отказ от ответственности Я являюсь автором этого пакета), который вы можете установить с помощью pip.

Пакет добавляет --scan опцию tox который выписывает явное отображение из py27, py36 и т.д. для питона исполняемого файла.

E.g. Я:

tox --scan /opt/python/{2,3}.?/bin/python /opt/python/pypy2/bin/pypy 

на моей системе, основанной Linux, где/Opt/питон/XY является ссылкой на последней выпустила версию Python, как установлено в/Opt/Python/XYZ (или последней версии в случае версии развития как 3.6), это дает в качестве вывода:

interpreters: 
python2.6 /opt/python/2.6/bin/python 
python2.7 /opt/python/2.7/bin/python 
python3.2 /opt/python/3.2/bin/python 
python3.3 /opt/python/3.3/bin/python 
python3.4 /opt/python/3.4/bin/python 
python3.5 /opt/python/3.5/bin/python 
python3.6 /opt/python/3.6/bin/python 
pypy /opt/python/pypy2/bin/pypy 

Когда я изменяю сканирование на:

tox --scan /opt/python/2.6/bin/python /opt/python/2.7.13*/bin/python \ 
    /opt/python/3.?/bin/python /opt/python/pypy2/bin/pypy 

я получаю:

interpreters: 
python2.6 /opt/python/2.6/bin/python 
python2.7 /opt/python/2.7.13rc1/bin/python 
python3.2 /opt/python/3.2/bin/python 
python3.3 /opt/python/3.3/bin/python 
python3.4 /opt/python/3.4/bin/python 
python3.5 /opt/python/3.5/bin/python 
python3.6 /opt/python/3.6/bin/python 
pypy /opt/python/pypy2/bin/pypy 

И tox -e py27 будет использовать кандидат на выпуск 2.7.13. Вы можете сохранить файл конфигурации (в ~/.config/tox или %APPDATA%\tox), если переключение туда и обратно, но повторное сканирование довольно быстро, поэтому я бы сделал для этого сценарий оболочки/псевдоним/пакетный файл.