私の同僚と私は現在、初期段階の Python コードベースのテストを自動化するための小さな一歩を踏み出していますが、環境のセットアップとパッケージ管理に関していくつかの問題に遭遇しました。これまで Python でこれを行ったことがないため (少し... 壊れているように見えます)、どんな助けも歓迎します。
要件:
- スクリプトを介してテストを実行できます ( Noseはかなり良さそうです)
- Windowsマシンで実行されます
- これは、TeamCityおよび標準の開発者マシンを介して実行できます。優れた TeamCity レポート/統合はおまけです。
- スクリプトを呼び出して、複数のマシンで正確で再現可能な結果を得ることができるはずです。
- すべての依存関係/パッケージの要件は、シンプルで再現可能な方法で満たされています (これは、ルビーとバンドラーを使用してメインのコードベースで行い、python でトリックを繰り返すのに苦労しています)。人々が卵を手動でインストールしたり、easy_install などを使用したりしなければならない場合、それは地獄になるでしょう。「これらの依存関係が考慮されていることを確認してから、テストを実行してください」というスクリプトを呼び出すことができるはずです。
理想的には、ワークフローは次のように機能する必要があります (現時点では、Python のインストール/取得方法は無視します)。
- Windows マシンは SCM と同期します
- マシンはスクリプトを実行して、すべての Python 依存関係 (Shapely など) が考慮されていることを確認します。
- マシンは、nose またはその他のテスト ランナーを実行するスクリプトを呼び出すことができます。
- スクリプトは、ビルドが失敗したかどうかを示す値を返します
ボーナスポイントの質問:
Python をソース管理にチェックインするのではなく、各開発マシン / ビルド エージェントにインストールしたいと考えています。これまでのところ、この面での最善の策は、Windows/System32 にある pythonxx.dll と一緒に Python インストール ディレクトリを SCM にチェックインすることですが、これが欠陥のあるアプローチであるかどうかはわかりません。
Movable PythonとPortable Pythonを見つけました。最善のアプローチは何ですか?私が言ったように、これが実行可能でない場合は、.msi を使用して各マシンに python をインストールするだけで済みます。
乾杯!