3

ディレクトリ内のすべてのテストを実行するようにトライアルを実行するにはどうすればよいですか?各ファイルを個別に試用すると、すべての単体テストに合格しますが、次のようなことを試してみると...

trial test/

テストディレクトリで、「PASSED」が1つ表示され、次のメッセージが表示されます。

UserWarning:  (for module __init__) not in path importer cache (PEP 302 violation
    - check your local configuration).

ディレクトリ内のすべてのテストを実際に実行するのではなく。

4

1 に答える 1

5

まず第一に、最上位の単体テストパッケージを呼び出すことはできませんtest。これはPythonの単体テストの名前であるため、インストールされた構成でテストを実行することはできません。Pythonの設定方法によっては、Python独自のテストではなく独自のテストをインポートすることになります。

第二に:sys.path広大で微妙な謎です。

trial簡単な開始ハックとしてファイルとディレクトリでの実行をサポートしますが、パス名の使用について完全に正しいとは限りません。正しいことは、Pythonモジュールとしてインポートして検査できるモジュール(またはパッケージ)名を試用することです。

したがって、ディレクトリ構造が次のようになっている場合:

~/Projects/MyProject/
~/Projects/MyProject/myproject/
~/Projects/MyProject/myproject/__init__.py
~/Projects/MyProject/myproject/stuff.py
~/Projects/MyProject/myproject/test/
~/Projects/MyProject/myproject/test/__init__.py
~/Projects/MyProject/myproject/test/test_stuff.py

次に、次のようにテストを実行する必要があります。

PYTHONPATH=$HOME/Projects/MyProject (cd /tmp; trial myproject.test)

つまり、プロジェクトのディレクトリ内からテストを実行しないでください。これにより、ソースコード全体に_trial_tempディレクトリがダンプされ、「コードのロード元」と「現在のディレクトリ」が混同され、通常、後で解きほぐすのが難しいさまざまなものが混乱します。

したがって、 Combinatorsetup.py development 、virtualenv 、または単にジャンクをにダンプするなど、選択したパス管理ツールを使用してPYTHONPATHセットアップし、一時的な場所から、一意の名前のトップレベルPythonパッケージで実行します。 、そしてすべてがうまくいくはずです。PATH~/.bashrctrial

于 2011-09-26T21:41:24.270 に答える