Ho iniziato a lavorare su un progetto Python piuttosto grande (multithread), con un sacco di test (unitari). Il problema più importante è che l'esecuzione dell'applicazione richiede un ambiente preimpostato, che viene implementato da un gestore di contesto. Finora abbiamo utilizzato una versione patchata del runner di unit test che eseguiva i test all'interno di questo gestore, ma ciò non consente di cambiare contesto tra diversi moduli di test.
Sia il naso che il pytest supportano una cosa del genere perché supportano i dispositivi a molte granularità, quindi stiamo cercando di passare a nose o pytest. Entrambe queste librerie supportano anche i test di "etichettatura" ed eseguono solo questi sottoinsiemi con tag, cosa che vorremmo fare anche noi.
Ho esaminato un po 'la documentazione di nose e pytest e, per quanto posso vedere, la parte più grande di quelle librerie supporta essenzialmente la stessa funzionalità, tranne per il fatto che potrebbe essere denominata in modo diverso o richiedere una sintassi leggermente diversa. Inoltre, ho notato alcune piccole differenze nei plugin disponibili (il naso ha il supporto multiprocesso, pytest non sembra per esempio)
Così sembra, il diavolo è nei dettagli, il che significa (spesso almeno) nel gusto personale ed è meglio che andiamo con la libreria che si adatta meglio al nostro gusto personale.
Quindi vorrei chiedere un'argomentazione soggettiva sul perché dovrei andare con il naso o il testaccio per scegliere la combinazione biblioteca / comunità che meglio si adatta alle nostre esigenze.