2013-09-23 10 views
51

Chciałbym użyć tox, aby uruchomić moje unittests w dwóch virtualenvs, ponieważ moja aplikacja musi obsługiwać 2 różne wersje Pythona.Jak uruchomić program tox w projekcie, który nie ma pliku setup.py?

Mój problem polega na tym, że tox wymaga setup.py, ale nie mam, ponieważ moja aplikacja nie jest modułem i ma własny instalator. Na razie nie chcę przechodzić przez kłopoty z zautomatyzowaniem procesu instalacji, aby pracować z setup.py, po prostu chcę uruchomić moje unittests bez konieczności pisania setup.py.

Czy to możliwe? Albo jak mogę napisać "puste" setup.py, które po prostu nie robi nic? Czy możesz wskazać mi jakąś dokumentację na ten temat (dokumentacja distutils wyjaśnia, jak napisać znaczący setup.py, a nie pusty)?

Odpowiedz

66

Po wykopaniu wewnątrz kodu źródłowego, znalazłem ledwie udokumentowane opcję w tox.ini że pomija sdist:

[tox] 
skipsdist = BOOL # defaults to false 

Ustawienie to True mam co chciałem, oszczędzając mi wysiłek pisania znaczący setup.py

+0

i jaki jest Twój 'Kod tox.ini' że faktycznie uruchamia testy? – linkyndy

+1

Moje testy są wykonywane z nosetests: 'commands = nosetests {posargs}' – Kjir

+1

Uruchamiam moje testy Django z 'python manage.py test', więc setup.py też tam nie jest potrzebny. Dzięki za wskazówkę. –

33

Jeśli masz aplikację (z requirements.txt), a nie projekt, który zamierzasz rozpowszechniać (która miałaby setup.py zamiast), twój tox.ini powinien wyglądać mniej więcej tak:

[tox] 
skipsdist = True 

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

uznało tę odpowiedź pochodzi z bloga Davida Murphy'ego: http://blog.schwuk.com/2014/03/19/using-tox-django-projects/

+0

Jeśli zamierzasz to zrobić, możesz również chcieć ustawić PYTHONPATH, aby to zrobić po prostu wykonaj 'setenv = # nowy wiersz \t PYTHONPATH = .' pod [testenv] – ZN13

Powiązane problemy