1

I'm trying to load some fixtures within my Django tests, but they don't seem to load.

In my settings.py, I specify:

FIXTURE_DIRS = (os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'))

Now, within my test case:

def setUp(self):
    fixtures = ['users.json', 'employee.json']

I should also probably mention that I'm using the Nose test runner:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

and unittest:

class TestEmployee(unittest.TestCase):

I must be missing something obvious, can someone point me in the right direction?

4

3 に答える 3

4

FIXTURE_DIRS は、文字列ではなく、リストまたはタプルであると想定されています。タプルリテラルを定義するのはカンマであり、括弧ではありません.IOWの設定は

FIXTURE_DIRS = (
    os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'), 
    )

補足として、パスセパレーターの種類をハードコーディングすると、os.path.join() を使用するポイント全体が無効になるため、これは実際には次のようになります。

FIXTURE_DIRS = (
    os.path.join(PROJECT_DIR, 'dhtmlScheduler', 'fixtures'), 
    )

編集:そして最後に、 setUp() メソッドではなく、クラスレベルで TestCase フィクスチャを宣言する必要があります...

于 2013-03-18T14:37:12.483 に答える
0
FIXTURE_DIRS = (os.path.join(PROJECT_ROOT, 'fixtures'),)

または

from django.test import TestCase

class MyTestCase(TestCase):
     fixtures = [
        '/myapp/fixtures/users.json', 
        '/myapp/fixtures/employee.json'
     ]
于 2013-03-18T15:38:06.810 に答える
0

テスト ケース ファイルでは、以下に示すように、定義済みのフィクスチャをこの方法で参照するだけです。 ここに画像の説明を入力

于 2020-05-13T01:57:36.017 に答える