django 1.3、Mongodb、および django-mongo-engine を使用して Web サイトを構築しました。「manage.py runserver」を使用してサーバーを実行すると、成功します。しかし、「manage.py test」で単体テストをしようとすると、なぜか失敗してしまいます。
データベースに関するsettings.pyは次のとおりです。
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine',
'NAME': 'sean_test',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
そして、これはテスト中のエラーメッセージです:
....フィクスチャ 'c:\Python27\lib\sitepackages\django\contrib\auth\fixtures\authtestdata.json' をインストールする際の問題: トレースバック (最新の呼び出しが最後):
ファイル「c:\Python27\lib\site-packages\django\core\management\commands\loaddata.py」、174 行目、handleobj.save(using=using) 内
ファイル「c:\Python27\lib\site-packages\django\core\serializers\base.py」、165 行目、savemodels.Model.save_base(self.object、using=using、raw=True) 内
ファイル "c:\Python27\lib\site-packages\django\db\models\base.py"、573 行目、save_baseresult = manager._insert(values, return_id=update_pk, using=using) 内
ファイル "c:\Python27\lib\site-packages\django\db\models\manager.py"、195 行目、_insertreturn insert_query(self.model, values, **kwargs) 内
ファイル「c:\Python27\lib\site-packages\django\db\models\query.py」、1438行目、insert_queryreturn query.get_compiler(using=using).execute_sql(return_id)
ファイル「c:\Python27\lib\site-packages\djangotoolbox\db\basecompiler.py」、369 行目、execute_sqlvalue = self.convert_value_for_db(db_type, value)
ファイル「c:\Python27\lib\site-packages\django_mongodb_engine\compiler.py」、67 行目、wrapperreturn func(*args, **kwargs) 内
ファイル "c:\Python27\lib\site-packages\django_mongodb_engine\compiler.py"、307 行目、convert_value_for_dbraise の InvalidId(msg)
InvalidId: AutoField (デフォルトの主キー) 値は、MongoDB の ObjectId を表す文字列である必要があります (代わりに u'1' を取得)
django は整数を使用し、mongodb は主キーに文字列を使用することは知っていますが、「runserver」が成功したときにテストが失敗する理由はわかりません。この問題を解決する方法について何か考えはありますか?
ありがとう!