セレンのテストケースを書いているときに、フォームを保存しているときに奇妙な状況が発生し、フォームを保存するときにデータベースにユーザーを作成しました。データベースでユーザーが正常に作成されたが、同じセレンテストケースでユーザーを取得したときにDOESNOTEXIST
例外が発生しました。データベースを手動で確認すると、新しく作成されたユーザーがそこにいます。同じプログラムでDB上にユーザーが作成されているかどうかを作成およびテストする方法を誰かが説明できますか? それが不可能な場合は、なぜですか?
1 に答える
0
私は解決策を得ました、実際には問題はtransaction handling
. プログラム全体を通して、djangoはauto_commitトランザクションを使用するため、データベースの変更はプログラムが完全に実行された後にのみ発生しました。そのため、auto_commit の代わりに、transaction.commit_manually
and とtransaction.commit()
andを使用してトランザクションを手動でtransaction.rollback()
処理し、保存したい時点でトランザクションを適切にコミットしてロールバックします。
于 2012-08-30T12:40:00.380 に答える