2012-05-12 11 views
6

trong khi tất cả các thử nghiệm hoàn thành không có lỗi và đồ đạc thực sự được tải. Có vấn đề Django 1.4?Django 1.4 nói "Không có lịch thi đấu cơ sở dữ liệu được chỉ định. Vui lòng cung cấp đường dẫn của ít nhất một trận đấu trong dòng lệnh."

Xin lưu ý rằng chỉ một số ứng dụng kích hoạt thông báo lỗi này (không có sự khác biệt về khái niệm giữa các bài kiểm tra đơn vị ứng dụng và đồ đạc tương ứng).

Cập nhật 1: nội dung fasttest.py:

DATABASES = {'default': 
    { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': ':memory:', 
    } 
} 

~/django_project$ ./manage.py test appname --traceback --settings=fasttest 
Creating test database for alias 'default'... 
.....................No database fixture specified. Please provide the path of at least one fixture in the command line. 
. 
---------------------------------------------------------------------- 
Ran 22 tests in 8.426s 

OK 
Destroying test database for alias 'default'... 

Cập nhật 2: rõ ràng là những ý kiến, mặc dù tôi biết ơn vì những cố gắng, chỉ chụp trong bóng tối. Cơ sở dữ liệu không quan trọng, cả SQLite3 lẫn Postgres DBs đều không giải quyết được vấn đề.

+0

Chúng tôi thực sự cần nhiều chi tiết hơn. Bạn có thể sao chép toàn bộ dấu vết ngăn xếp vào câu hỏi không? Nó cũng sẽ là tốt để xem phần cơ sở dữ liệu của tập tin settings.py của bạn. – Paragon

+0

Nếu tôi nhớ rõ, bạn cần chỉ định đường dẫn cho db nếu bạn định sử dụng sqlite3 làm hỗ trợ DB. Điều này từng là một yêu cầu nhận xét trong Django 1.3.1. Tôi không thể nói chắc chắn nó giống nhau cho 1,4, nhưng bạn có thể thử. –

+0

Trên thực tế, tôi nghĩ rằng dấu hai chấm là vấn đề với DB. Hãy thử lấy chúng ra và xem nó có hoạt động không. –

Trả lời

7

Tôi có cùng vấn đề này với các đồ đạc thử nghiệm đã hoạt động tốt dưới 1,4.

Đối với tôi, tôi đã có một trường hợp thử nghiệm nơi tôi đã không sử dụng bộ ghép, và vì vậy tôi đã được thiết lập cố định đến một tập rỗng như thế này:

class MyTestCase(TestCase): 
    fixtures = [] 

Khi tôi nhận xét ra dòng đó, các lỗi đã biến mất:

class MyTestCase(TestCase): 
# fixtures = [] 
+0

'TestCase._fixture_setup()' của Django chỉ kiểm tra 'hasattr ('fixtures')' thay vì kiểm tra nội dung, sau đó gọi loaddata là nơi gửi khiếu nại. Bạn có thể tránh cả thông báo lỗi và tải lịch thi đấu thực tế bằng cách đặt một cái gì đó không có thật, vì loaddata không phàn nàn về điều đó: 'fixtures = ['BOGUS']' –