python unit-testing distutils tox

python - ¿Cómo ejecuto tox en un proyecto que no tiene setup.py?



pytest (3)

Después de buscar dentro del código fuente, encontré una opción apenas documentada en tox.ini que omite sdist:

[tox] skipsdist = BOOL # defaults to false

Al establecer esto en True obtuve lo que quería, ahorrándome el esfuerzo de escribir un setup.py significativo

Me gustaría usar tox para ejecutar mis tox de tox en dos virtualenvs, ya que mi aplicación debe admitir 2 versiones diferentes de Python.

Mi problema es que tox requiere un setup.py , pero no lo tengo, ya que mi aplicación no es un módulo y tiene su propio instalador. Por ahora no quiero pasar por la molestia de automatizar el proceso de instalación para trabajar con setup.py , solo quiero ejecutar mis setup.py sin tener que escribir un setup.py .

¿Es eso posible? ¿O cómo puedo escribir un setup.py "vacío" que simplemente no hace nada? ¿Puede indicarme alguna documentación sobre el tema (la documentación de distutils explica cómo escribir un setup.py significativo, no uno vacío)?


Este es mi contenido de archivo tox.ini para el proyecto Django por múltiples configuraciones:

[tox] envlist = py36-{accounting,content,media}_settings skipsdist = true [testenv] commands = python {toxinidir}/manage.py test deps = -r{toxinidir}/requirements.txt setenv = accounting_settings: DJANGO_SETTINGS_MODULE=my_project.settings.accounting contents_settings: DJANGO_SETTINGS_MODULE=my_project.settings.contents media_settings: DJANGO_SETTINGS_MODULE=my_project.settings.media


Si tiene una aplicación (con un requirements.txt ), en lugar de un proyecto que va a distribuir (que tendría un setup.py en su lugar), su tox.ini debería verse más o menos así:

[tox] skipsdist = True [testenv] deps = -r{toxinidir}/requirements.txt

Encontré esta respuesta originalmente del blog de David Murphy: http://blog.schwuk.com/2014/03/19/using-tox-django-projects/