2017-01-05 10 views
0

私はdjangoのドキュメントで7部のチュートリアルを続けました。 Djangoプロジェクトは、私は自分のアプリケーションにテストケースを追加し、すべての変更をプッシュするたびに、私はすべてのユニットテストケースの実行Openshift python manage.pyテストが実行されない

python manage.py test 

python manage.py makemigrations 
    python manage.py migrate 

を入力する必要がないのはなぜOpenshiftクイックスタート

で作成されました私はテストを実行する前にopenshiftへのSSH接続を使用して移行を再入力する必要があります。 そうでなければ、 "そのようなテーブルmyapp_question"エラーメッセージが表示されます。

python manage.py dbshel​​lを使用すると、すでにすべての移行が行われているため、そのデータベースが適切なテーブルで表示されていることがわかります。

Separate, blank databases are created for the tests. モデルを変更せずに新しいデータベースに何が起こるのかを、opensshiftでテスト前にmigrateと入力する必要があるのはなぜですか?

私は

from django.test import TestCase 

からすべてのテストケースをインスタンス化し、このインポートは、空のテーブルを新しいデータベースに必要な箱から出して提供する必要があります。

openshiftフックに何かを入れたり、settings.pyを修正してください。

私がテストを実行することができますが、私はちょうど

 manage.py test 

を入力し、その結果

答えて

0

を探索することができない理由はgitを使用してopenshiftためにあらゆるプッシュはDjangoのデータベース移行せずに新しいランタイムを作成し、理解していませんスキーマ。データベースのすべての履歴は、サブディレクトリsshを使用してアクセスできるDATAサブディレクトリに保存されています。

djangoテストでは、メモリデータベースを使用するテスト目的でデータベースを再作成するために移行履歴が必要です。

マイグレーションを実行し、テスト用の移行スキーマが作成された場合のみ作成します。あなたが指定された永続的なデータディレクトリにこだわっSQLiteのようなファイル・システム・データベースを使用していない場合、私は

+1

間違っている場合

は、私を修正してください、[はい、あなたはそれを毎回作成する必要があります。ディレクトリの場所を指定する環境変数があります。 –

+0

はい、私はSQLiteデータベースを使用していたことに言及するのを忘れていました。なぜなら、カートリッジを構築するのに多くの処理時間がかかるからです。明確化のためにありがとうございます。私が間違ったことをやっているという気持ちがあった –

関連する問題