web-dev-qa-db-ja.com

`setup.py test`に依存関係を` virtualenv`にインストールさせるにはどうすればよいですか?

私のアプリケーションをpip-インストール可能にするための十字軍で、私はsetuptoolsdistributeとの大きな戦いを戦っています。依存関係は正しいと思います。つまり、pip install myappを使用してインストールすると、おそらく仮想環境が正しく満たされるはずです。ただし、開発を効率化したいので、空のvirtualenvから始めて、setup.py test(および後でsetup.py develop)を作成することを目標としていますが、それはまったく異なる戦い)定義されたすべての依存関係でそれを埋めます。

そして今、私の問題になります。どんなに頑張っても、プロジェクトディレクトリに.Eggsとしてインストールされている依存関係だけが、少なくとも最適ではありません。 setuptoolsを使用する新しいpipコマンドを作成しようとしましたが(これは厄介ですが機能しているようです)、それは真剣に解決策にはなりません(サブクラス化とオーバーライド)。

では、作業ディレクトリの代わりにsetup.py testvirtualevnに入力するにはどうすればよいですか?

30

設計上、tests_requiresまたはsetup_requiresエントリを仮想環境に入れることはできません。テスト/セットアップの実行に必要なものと、インストールされているパッケージを実際に使用するために必要なものを分離するという考え方です。たとえば、パッケージでテストを実行するために「coverage」モジュールが必要な場合がありますが、パッケージ内のどのコードでも使用されていません。したがって、テストを実行するときに環境に「カバレッジ」がない場合、パッケージで「カバレッジ」が必要ない場合は、「カバレッジ」を環境にインストールしたくありません。

12
Ben Root