2014-09-16 10 views
38

Mam aplikację Django, która ma części pierwotnie napisane w Django 1.2, a aplikacja została uaktualniona do wersji 1.7. Po uaktualnieniu do 1,7, Dostaję następujące ostrzeżenie od python manage.py check:Django 1.7 - Jak tłumić "(1_6.W001) Niektóre projekty mogą się nie uruchamiać zgodnie z oczekiwaniami."?

System check identified some issues: 

WARNINGS: 
?: (1_6.W001) Some project unittests may not execute as expected. 
    HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information. 

URL mentioned in the error message ma szczegółowo zmiany, które zostały wprowadzone, ale nie daje żadnej wskazówki, dlaczego to ostrzeżenie jest wyzwalany lub jak stłumić. Mimo że komunikat ostrzegawczy odnosi się do Django 1.6, pojawił się dopiero po aktualizacji do Django 1.7

Sprawdziłem, że ta sama liczba testów jednostkowych jest uruchamiana w Django 1.7, ponieważ była uruchamiana w Django 1.6.1.

Dla zainteresowanych aplikacja, o której mowa, to system zarządzania zdarzeniami o nazwie Kompassi, który można znaleźć pod numerem Github.

+0

Czy śledziłeś 2 wymienione tutaj punkty? https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner – karthikr

+1

Jak stwierdziłem w pytaniu, ta sama liczba testów jest uruchamiana, więc jest to fałszywy alarm. Wszystkie moje testy są umieszczane w plikach o nazwie 'tests.py' w aplikacjach. Sprawdziłem również, czy to było uruchamiane przez 'lippykala_test_app.py' w [jednej z zależności] (https://github.com/kcsry/lippukala), ale tak nie było. –

+0

Oto szczegółowe wyjaśnienie: http://daniel.hepper.net/blog/2014/04/fixing-1_6-w001-when-upgrading-from-django-1-5-to-1-7/ – Sam003

Odpowiedz

9

Możesz wyciszyć indywidualne ostrzeżenia o sprawdzaniu systemu przy ustawieniu .

Jeśli chodzi o inne pytanie dotyczące wyszukiwania przyczyn ostrzeżenia, jedynym miejscem, w którym mogłem je znaleźć, było przejrzenie source code.

45

Znaleziono blog post który ujawnia jednoznacznie określającą

TEST_RUNNER = 'django.test.runner.DiscoverRunner' 

w settings.py zatrzyma tego ostrzeżenia.

+2

Ten konkretny check próbuje wykryć pewną konfigurację za pomocą heurystyk i niestety może spowodować pewne fałszywe alarmy. To wyraźne informuje algorytm, że był to projekt Django 1.7+. Wielkie dzięki. – bslima

+0

Idealne rozwiązanie (dopóki @Arklon nie wskaże, że devs może ostrzeżenie w całej jego kolorowej chwale). Aktualizacja – Joseph8th

8

Jeśli wszystko jest w porządku ze swoimi testów, można po prostu włączyć ostrzeżenie off wykonując jedną (lub wszystkie) z następujących czynności:

  1. Usuń SITE_ID z ustawieniami jeśli witryn ramy nie używać więcej .

  2. Dodaj BASE_DIR zmienną do swoich ustawień.

  3. Usuń z listy MANAGERS listę, jeśli jej nie używasz.

  4. Usunąć XFrameOptionsMiddleware oprogramowanie pośrednie w ustawieniach. (To jest domyślnie włączona w Django 1.6 + tak)

  5. Usuń zwyczaj TEMPLATE_LOADERS lub ADMINS jeśli nie są potrzebne (zazwyczaj robisz, więc nie rób tego, chyba że wiesz co robisz) .

Są dwie rzeczy obecne heurystyki (Django 1.7.3) kontrole w celu wykrycia, czy projekt został wygenerowany przez Django < 1.6.

+0

Użyłem "PROJECT_ROOT" zamiast "BASE_DIR". Sugerowałeś to dla mnie. – Esteban

+0

W moim projekcie było to SITE_ID i BASE_DIR, które ustawiłem po prostu za pomocą BASE_DIR = PROJECT_ROOT. – normic