1

NoseとNosetestsを使い始めたばかりですが、Noseが環境変数を認識できないため、テストが失敗します。

これまでのところ、エラー:AttributeError:'Settings'オブジェクトには属性'DJANGO_SETTINGS_MODULE'がありません

.bash_profileからDJANGO_SETTINGS_MODULEをエクスポートすることでこれを修正しました

export DJANGO_SETTINGS_MODULE="settings"

今私は見ています:
AttributeError:'Settings'オブジェクトには属性'DATABASE_SUPPORTS_TRANSACTIONS'がありません

なぜiPythonとDjangoWebサーバーはこれらのENV変数を表示できるのに、Noseは表示できないのでしょうか。

4

2 に答える 2

2

Alokが言ったように、Noseはdjango.db.backends.creationからBaseDatabaseCreation.create_test_db('None')を呼び出さないため、この設定を手動で設定する必要があります。

私はそれを機能させることができませんでした。

しかし、NoseDjangoを見つけました。

次のコマンドでNoseDjangoをインストールします。

easy_install django-nose  

django-noseはDjangoの組み込みテストコマンドを拡張するため、settings.pyのINSTALLED_APPSに追加する必要があります。

INSTALLED_APPS = (
...
'django_nose',
...
)

次に、settings.pyでTEST_RUNNERを設定します。

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

NoseDjangoがセットアップされると、次の方法でNoseテストを実行できます。

manage.py test
于 2010-02-10T21:24:11.910 に答える
1

どうやらnoseは呼び出さない create_test_db()ので、django/db/backends/creation.pyこのエラーが表示されます。に設定するNoneか、自分でメソッドを呼び出します。これが最近のバージョンのDjangoで修正されているかどうかはわかりません。

于 2010-02-10T20:30:04.050 に答える