2011-11-22 2 views
5

Sto per usare il naso come metodo per la scoperta dei test sulle mie classi unittest già implementate nel mio progetto piuttosto ampio. Avevo l'impressione che il naso fosse usato principalmente per la scoperta dei test e il test in esecuzione (anche in parallelo). Ma vedo this question come se il naso fosse un sostituto per l'unittest. Qualcuno può chiarire cosa intendessero qui? Mi manca una parte fondamentale della funzionalità fornita dal naso?Il naso è un'estensione di unittest?

Come nota a margine, qual è la differenza tra py.test e nose?

+1

dal momento che Python 2.7, 'unittest' fornisce anche la scoperta, quindi se questo è il tuo obiettivo, puoi farlo solo con lo stdlib –

risposta

8

Il docs per il naso dire:

naso fornisce un'alternativa scoperta prova e processo in esecuzione unittest, uno che è destinato a simulare il comportamento di py.test come quanto è ragionevolmente possibile senza ricorrere a troppa magia.

Se si take a peek at the code, vedrete che l'unittest è una delle dipendenze.

import logging 
import sys 
import unittest 

Così - al meglio delle mie conoscenze - direi che il naso è un drop-in alternativa per l'esecuzione di test, ma non un sostituzione al modulo unittest (giocando un po 'con la semantica qui, ma spero che questo sia abbastanza chiaro).

7

Il comportamento del mimo del naso di py.test. Questo è quello che dicono sul loro website:

naso offre una scoperta alternativo di prova e di processo in esecuzione per unittest, uno che ha lo scopo di imitare il comportamento di py.test quanto è ragionevolmente possibile senza ricorrere a troppi magia

Nose è una un'estensione di unittest e aggiunge le caratteristiche elencate in questione https://stackoverflow.com/questions/5696884/python-nose-vs-unittest.

+0

Questo sembra ragionevole. Il naso è certamente basato su unittest. Sottoclasse e sostituisce l'unittest loader e runner e ne estende radicalmente le capacità. – dbn