[解決済み] [Solved] カスタムDjango manage.pyコマンドをテストドライバから直接呼び出すにはどうしたらいいですか?
2022-04-13 19:26:46
質問
データベースのテーブルに対してバックエンドの操作を行う Django manage.py コマンドのユニットテストを書きたいと思います。 コードから直接管理コマンドを呼び出すにはどうしたらよいでしょうか?
manage.py test で設定したテスト環境(テストデータベース、テストダミーメールアウトボックスなど)が使えないので、tests.py からオペレーティングシステムのシェル上でコマンドを実行したくありません。
解決方法は?
このようなものをテストする最良の方法は、コマンド自体から必要な機能をスタンドアロン関数またはクラスへ抽出することです。これは、コマンドの実行に関するものから抽象化し、追加の要件なしにテストを書くのに役立ちます。
しかし、何らかの理由でロジックをコマンドから切り離すことができない場合、どのようなコードからでも コールコマンド というメソッドがあります。
from django.core.management import call_command
call_command('my_command', 'foo', bar='baz')
関連
-
Django QuerySet マルチテーブル結合/条件付きピッキング/マージ
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み】djangoのビジネスロジックとデータアクセスの分離
-
[解決済み] [Solved] カスタムDjango manage.pyコマンドをテストドライバから直接呼び出すにはどうしたらいいですか?
-
[解決済み] ファイルシステムに依存するコードの単体テスト
-
[解決済み] Django Forms: 有効でない場合、エラーメッセージとともにフォームを表示する
-
[解決済み] Django の {% url %} テンプレートタグでクエリパラメータを渡すことは可能でしょうか?
-
[解決済み] Djangoテンプレートでネストされたforループで一番外側のforloop.counterにアクセスする方法は?
-
[解決済み] DjangoでSELECT COUNT(*) GROUP BYとORDER BYを行うにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ユニコードオブジェクトはハッシュ化する前にエンコードする必要がある問題を解決
-
ImproperlyConfiguredです。DEFAULT_INDEX_TABLESPACE の設定を要求されましたが、設定されていません。
-
[解決済み] Django のモデルで電話番号を保存する最良の方法は何ですか?
-
[解決済み] シグナルハンドラは django プロジェクトのどこにあるべきですか?
-
[解決済み] django で複数のオブジェクトを削除する
-
[解決済み] Djangoアプリの命名規則はありますか?
-
[解決済み] Django admin: データベースフィールドを持たないカスタム list_display フィールドの1つでソートする方法
-
[解決済み] Djangoテンプレートでネストされたforループで一番外側のforloop.counterにアクセスする方法は?
-
[解決済み] Django の DoesNotExist 例外はどのようにインポートしますか?
-
[解決済み] Django で https 接続を非 https 接続と同じように簡単にテストするには 'runserver' を使うには?