Я пытался внедрить систему тестирования из одного источника, которая позволяет автоматически тестировать несколько версий Python с помощью tox + Nosetests.
Проблема в том, что я не могу заставить его работать всякий раз, когда тестирую Python 3.2. Все работает нормально, если исключить Python 3.2.
Вот мой tox.ini
:
[tox]
envlist = py25,py26,py27,py32,pypy,jython
[testenv]
commands =
nosetests []
deps =
nose
mock
[testenv:py32]
commands =
nosetests []
и мой ~/.noserc
:
[nosetests]
verbosity=2
with-doctest=1
Я установил флаг use_2to3
на True
в файле setup.py, но эта ошибка продолжает появляться: NameError: global name 'basestring' is not defined
. Кажется, мне не хватает какой-то настройки, которая должна заставить работать 2to3
, но я не знаю, что это такое.
Кроме того, я попытался заменить nosetests []
на python setup.py test
в настройке testenv:py32
. К сожалению, не только продолжает появляться одна и та же ошибка, но и появляется другая ошибка: Error in atexit._run_exitfuncs: TypeError: 'NoneType' object is not callable
.
Любые указатели?
РЕДАКТИРОВАТЬ: добавлен код в setup.py
, если он полезен:
# handle python 3
if sys.version_info >= (3,):
use_2to3 = True
else:
use_2to3 = False
и где-то в setup()
: use_2to3 = use_2to3
setup.py
и тестирует версию, которая собирается, а не тестирует основной источник. Я не использовалtox
, но обычно вы можете запуститьpython setup.py build
, затем перейти в каталог сборки и запустить тесты. - person Thomas K   schedule 15.03.2012from __future__ import with_statement
в env python2.5, но не в python2.7. Преобразование2to3
, кажется, работает, но по какой-то причинеtox
не проверяет его автоматически... - person bow   schedule 15.03.2012nosetests
из исходного каталога, в котором будет непереведенный код. - person Thomas K   schedule 15.03.2012site-packages
py32 env вручную в моем файлеtox.ini
. Не самое элегантное решение, учитывая, что мне не нужно делать это для других testenvs, но пока это хорошо. Спасибо! - person bow   schedule 16.03.2012distribute
есть некоторые хитрости... - person Thomas K   schedule 16.03.2012