2015-07-27 11 views
8

Ho difficoltà a provare a configurare i test in esecuzione in PyCharm.Esecuzione dei test delle app Django in PyCharm

voglio eseguire i test per le mie applicazioni Django su misura, così la mia configurazione sembra qualcosa di simile:

Django apps in options field

Funziona bene per lo più (test eseguiti, riescono), anche se non consente di rieseguire i singoli test e rieseguire quelli non riusciti: esegue sempre tutti i test per le applicazioni specificate (comune e autorizzazione).

Il manuale dice che dovrei mettere i nomi delle applicazioni Django nel campo "Destinazione" in questo modo:

Django apps in Target field

Ma ogni volta che lo faccio, il mio test non riescono a correre con errori strani: a volte non può importare alcuni i moduli, sebbene siano decisamente accessibili, a volte ci sono molte eccezioni NoReverseFound, anche se nessuna di esse è effettivamente presente nel codice.

Suppongo che sto configurando qualcosa di sbagliato, ma non riesco a capire cosa. Sono in esecuzione la versione più recente di PyCharm e una delle versioni 1.5.x di Django (codice legacy dal back in the day Dovevo mantenere)

UPD: Se metto authorization.UserApiTestCase.test_login in target - funziona benissimo , authorization.UserApiTestCase funziona anche, ma mettere solo appname (authorization) non funzionerà e produrrà NoReversrMatch o importare errori ... lasciando Target funzionerà anche, anche se eseguirà anche i test di Django iinternal e non è quello che mi serve - I voglio solo eseguire tutti i test delle mie app (o test da app specifiche).

+0

Sarebbe bello se hai menzionato la versione di Django che usi, dal momento che ha cambiato il caricamento delle app e la gestione dei test nelle ultime tre versioni. –

+0

La prima e la seconda foto sono le stesse. – f43d65

+0

No, non lo sono. Guarda i campi Target e Opzioni. – DataGreed

risposta

0

Come si è scoperto, si tratta di un bug relativo alle versioni precedenti di Django. L'aggiornamento all'ultimo (1.9.2 al momento) ha risolto il problema.

3

Se la struttura di progetto in PyCharm è simile a questo:

myproject 
├── README.md 
├── myproject 
│   ├── app1 
│   │   └── test.py 
│   ├── app2 
│   │   └── test.py 
│   ├── app3 
│   │   └── test.py 
│   └── settings.py 
└── requirements.txt 

quindi potrebbe essere necessario aggiungere la seconda cartella di livello myproject come "Sources Root"

cartelle "Sources root" sono indicate da un blu icona della cartella nella finestra "Progetto"

per aggiungere un "Fonti Root" andare in Preferenze -> Progetto: MyProject -> Progetto Struttura

Selezionare anche "aggiungi root di origine a PYTHONPATH" in "Esegui/Debug configurazioni".

Successivamente, è possibile eseguire test con destinazioni specificate.

+0

dove manage.py vive nel tuo progetto? – DataGreed

+0

Il mio secondo livello più vecchio è già controllato come cartella di origine, anche se non ho file denominati test.py, i miei sono denominati tests.py (convenzione di django, credo). "aggiungi radici di origine a PYTHONPATH" è impostato su true (ha un segno di spunta) – DataGreed

+0

il mio 'managed.py' vive allo stesso livello di' requirements.txt'. e 'test.py' è un refuso, sei corretto,' tests.py' è la convenzione. – quaspas

Problemi correlati