2013-12-10 10 views
5

私は、堅牢なユニットと受入れテストスイートで約3500の文章を書いた非常に大きなPythonパッケージを持っています。私はコード自体の品質についてかなり自信を持っていますが、適切に隔離された環境で確実にインストールをテストする方法がわからないため、パッケージのユーザーにとってインストールプロセスがスムーズに行えないのは不安です。余分なマシンを保ち、各テストの実行ごとに新しくOSをインストールして再イメージングします。パッケージのsetup.pyをテストするにはどうすればよいですか?

正しい方法でvirtualenvを使用することは、インストールのテストに適切なテストフィクスチャを提供すると思われますが、拡張されたWeb検索では役立つガイダンスが見つかっていません。

開発マシンでsetup.pyやその他のインストールビットを効果的にテストするにはどうすればよいですか?

+2

virtualenvで 'python setup.py install'を試してみませんか? –

+0

エンドユーザーの環境にない開発マシンに存在するファイルやその他の依存関係を使用していないことをどのように知っていますか? – scanny

+0

virtualenvがあなたが望むものを信頼できないと思ったら、仮想マシンを試すことができます。 VirtualBoxをインストールしてスナップショットを撮ると、setup.pyを実行してスナップショットを復元してクリーンな状態に戻すことができます。バーチャルマシンは、他にも数多くのものに役立ちます。 :)はい、それは余分なものですが、別の物理マシンと同じように過剰なものではありません。 –

答えて

3

ます(私はを行う)ツールのような場合にfabricと私はすべての私のプロジェクトで書いたファブリックタスクのセットをチェックアウト:

例:circuits' fabfile

これは、ちょうど約のために働く必要があります任意のPythonプロジェクトとは、利用:

  • スフィンクスを
  • py.test/TOX
  • virtualenvの

いくつかの基本的なワークフロー:

fab build # build the package in non-development mode 
fab develop # build the package in development mode 
fab docs  # build/regenerate the documentation 
fab test  # run tie unit test suite 
fab release # run through a tested release cycle 

タイプ:任意のコマンドのヘルプのためのコマンドの一覧についてfab -lfab help:<name>

更新:最近、私たちはあなた本当にが分離だけではなく、virtualenvのでpython setup.py installを行う場合Docker

fab docker:build # Build a Docker image 
fab docker:publish # Publish Docker image to the Docker Hub 
fab docker:run  # Run a new Docker container 
+0

ええと、これは面白そうです。だから、別のマシンをどこかで稼働させて展開テストのフィクスチャーとして機能させますか?これは実際には可能な選択肢として、継続的インテグレーション(CI)環境を考慮に入れています。たぶん私はパッケージをTravis CIなどに載せることを検討するべきでしょう。私は少し前に考えましたが、本当にそれを研究していませんでした。 – scanny

+0

いいえ、ファブリックタスクはすべてローカルのみです。しかし私はすべてのプロジェクトをdrono.ioとshiningpanda.comのCIサービスに任せていますが、これはBitBucketのリポジトリフックによって自動的に処理されます。 –

+0

うーん、それは面白いです。あなたのローカルマシンのどこで実際にビルをやっていますか?どのように孤立を取得し、あなたのビルドスクリプト/ setup.pyへのあなたの信頼を高めますか?私の他の質問は、なぜSSH接続が関与していない場合、bashスクリプトの代わりにファブリックを使用する必要があるのか​​ということですね。それとも? – scanny

2

で動作するようにfab dockerコマンドを追加しました。その後、virtualboxを使用して、そこにいくつかの無料のLinux OSをインストールします。インストール後にマシンのスナップショットを撮ってください。ワンクリックでいつでも簡単に元の位置に戻って、python setup.py installを試すことができます。

関連する問題