py.test, работающий с Python2 и Python3

я написал пакет (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"просто работали"?

Спасибо.

8
задан antony 27 April 2012 в 08:19
поделиться