я написал пакет (http://github.com/anntzer/parsedcmd), который работает как с Python2, так и с Python3. Однако мне пришлось написать отдельные модульные тесты (py.test )для Python2 и Python3 (, главным образом потому, что я хочу протестировать дополнительные функции Python3, в частности ключевое слово -only arguments ), поэтому я иметь test_py2.py
и test_py3.py
в подпакете test
. Теперь, если я запускаю, скажем, py.test2 mypkg
, test_py2
проходит, но test_py3
терпит неудачу с SyntaxError
. Точно так же для py.test3 mypkg
, test_py3
проходит, но test_py2
терпит неудачу (Я мог бы заставить это работать, это просто проблема StringIO
, перейдя наio
).
Я могу спроектировать подпакет test
так, чтобы import mypkg.test
импортировал только правильную версию тестов, но, видимо, py.test это не волнует --он просто видит два файла, соответствующих test_*
, и захватывает все тесты в обоих из них, игнорируя то, что __init__.py
говорит ему импортировать.
Так что прямо сейчас я должен сделать и py.test2 mypkg/test/test_py2.py
и py.test3 mypkg/test/test_py3.py
. Есть ли способ настроить все это так, чтобы py.test2 mypkg
и py.test3 mypkg
"просто работали"?
Спасибо.