これまでのところ、SQLite上での開発とテストが行われていましたが、生産はPostgres上で行われていました。これでPostgresですべてを実行する必要があり、多数のテストが壊れました。理由は、各テストのIDが1で始まらず、テスト間で継続するからです。この問題を解決する方法PostgresでのDjangoテスト - リセットシーケンス
一つの方法はとても
class FooCase(APITransactionTestCase):
reset_sequences = True
この作品で
class FooCase(APITestCase):
を変え、TransactionTestCase
を使用することですが、私は試してみて、テストを修正することができますが、それは
遅くなります多くのテストではメソッドを嘲笑しているので、かなり難しいです。別の方法があります。シーケンスをリセットして、すばやく整理できるようにする方法はありますか?
特にテストは1から始まるシーケンスに依存しますか? –
あなたがスイッチを作ったことは良いことです!あなたのアプリケーションは、ギャップを持たないシーケンスに頼るべきではありません! – e4c5
@DanielRosemanテストユーザーを作成するとき、私は彼らのpkを知っています。私はJSON '@ mock.patch'の中でそのpkを使います(JSONは読みやすくするために別のファイルにあります)。 –