私はqtpyと呼ばれるvimのノーズテストランナーを使用していて、テストが単純なunittest.TestCaseの場合はすべて問題ありませんが、データベースが必要になった瞬間、ノーズテストランナーが実行前にsyncdbしないことは明らかです。
各実行の前にsyncdbを実行するテストランナーは存在しますか?そうでない場合、より統合されたdjangoテストを実行するときに、人々はこの問題をどのように回避していますか?
重要な場合は、モック設定ファイルを使用しているので、DJANGO_SETTINGS_MODULEがセットアップされています。さらに、sqlite dbファイルが作成され、テストランナーが利用できるようになります。しかし、noseが「django」テストを実行すると、syncdbに失敗し、次のような結果になります。
23 return Database.Cursor.execute(self, query, params)
24 DatabaseError: no such table: foo_bar
25 -------------------- >> begin captured logging << --------------------
26 django.db.backends: DEBUG: (0.001) CREATE TABLE ROLLBACK_TEST (X INT); args=()
27 django.db.backends: DEBUG: (0.000) INSERT INTO ROLLBACK_TEST (X) VALUES (8); ar...
28 django.db.backends: DEBUG: (0.000) SELECT COUNT(X) FROM ROLLBACK_TEST; args=()
29 django.db.backends: DEBUG: (0.001) DROP TABLE ROLLBACK_TEST; args=()
30 django.db.backends: DEBUG: (0.000) INSERT INTO "foo_bar" ("first", "last" ...
31 --------------------- >> end captured logging << -