私のアプリケーションは2つの異なるPython=バージョンをサポートする必要があるため、tox
を使用して2つのvirtualenvでユニットテストを実行します。
私の問題は、tox
にはsetup.py
が必要なことですが、私のアプリケーションはモジュールではなく、独自のインストーラーがあるため、何も持っていません。とりあえず、setup.py
で作業するためにインストールプロセスを自動化する煩わしさを感じたくないので、setup.py
を記述せずに単体テストを実行したいだけです。
それは可能ですか?または、単に何もしない「空の」setup.pyを作成するにはどうすればよいですか?この件に関するいくつかのドキュメントを教えていただけますか(distutils
のドキュメントには、空のドキュメントではなく、意味のあるsetup.py
の記述方法が説明されています)?
ソースコードを掘り下げた後、sdistをスキップするtox.iniにほとんど文書化されていないオプションを見つけました:
[tox]
skipsdist = BOOL # defaults to false
これをTrue
に設定すると、必要なものが得られ、意味のあるsetup.py
を書く手間が省けます
アプリケーションがある場合(requirements.txt
)、あなたが配布しようとしているプロジェクトではなく(setup.py
代わりに)、あなたのtox.ini
は次のようになります。
[tox]
skipsdist = True
[testenv]
deps = -r{toxinidir}/requirements.txt
この答えは、David Murphyのブログから最初に見つかりました: http://blog.schwuk.com/2014/03/19/using-tox-Django-projects/
これは、複数の設定によるDjangoプロジェクトのtox.iniファイルの内容です。
[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