È possibile passare argomenti della riga di comando allo script manage.py
di Django, in particolare per i test delle unità? vale a dire se faccio qualcosa di simileDjango manage.py: è possibile passare l'argomento della riga di comando (per il test dell'unità)
manage.py test myapp -a do_this
Posso ricevere il valore do_this
nella funzione setUp
di test di unità?
P.S. @ Martin ha chiesto la giustificazione per l'utilizzo di argomenti della riga di comando nei test:
Alcune prove approfondite prendono un sacco di tempo e non hanno bisogno di essere eseguito prima di ogni invio. Voglio renderle opzionali.
messaggi di debug occasionali stampati dai miei casi di test dovrebbe essere facoltativo
A volte voglio solo i test per impazzire e cercare molto di più permutazioni di dati.
Tutto quanto sopra sarebbe abbastanza conveniente con le opzioni della riga di comando. Una volta ogni tanto il test può essere molto più esteso o prolisso, altrimenti sarà veloce.
Indipendentemente dal sì o dal no, non avrebbe più senso aggiungere gli argomenti al test dell'unità stesso? Questo è veramente uno dei principali casi d'uso di un test unitario: controllo di diversi casi limite ecc. Se definisci diverse funzioni di test per ciascun caso, sarai in grado di chiamarli separatamente come 'manage.py test myapp.mytestcase' –
@ Martin Punto giusto.Ho elaborato i miei pensieri nella risposta (P.S.) – user4150760
ok, quindi creerei funzioni come 'testBasic',' testCrazy' ecc. Ed eseguo qualsiasi test necessario su commit. Sono completamente d'accordo sul fatto che eseguire un'intera suite di test di un grande progetto su ogni commit può essere fastidioso. Ecco perché dovresti creare un nuovo test per un commit o semplicemente scegliere il test a cui è legato il commit. –