3

私は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 << -
4

2 に答える 2

1

djangoの組み込みユニットテストを使用していますか?

from django.utils import unittest

django unittestは、すべてのテストが実行される前に自動的に削除してsyncdbを実行します

テストを実行し、djangoプロジェクトと設定を認識させる方法に問題があるようですが?djangoのユニットテストを使用すると、djangoプロジェクトをシームレスにテストできます

于 2013-03-05T15:18:38.097 に答える