Domanda

Ho appena scoperto che mi è stato sempre il doppio del numero di test eseguiti che io sono stato sempre. Scoperto quando un test è rotto e ho avuto due fallimenti dei test identici. Stesso test, stesso tutto. Mi ha fatto un po 'confuso, ma è riuscito a restringere il campo ad una certa classe di test che era una classe parziale.

La ragione è stata una classe parziale era che avevo dividere una classe di test in due, solo per fare un po 'più pulito. La classe in prova ha avuto un certo metodo che ha richiesto una lunga serie di test e ho pensato che sarebbe stato più pulito di avere quelli in un file separato. Ma dal momento che non vi era uno o due helper metodi usati ho pensato che avrei potuto solo fare la classe parziale in modo che entrambi i file aveva ancora accesso a tali metodi.

Il framework di test è NUnit ei test è stato eseguito utilizzando TestDriven.Net. Ha eseguito il test sia dall'interno un unico metodo di prova (riportati due test passati invece di uno), sulla classe (ottenuto il doppio del numero di test passati) e nel complesso progetto di test.

è riuscito a risolvere il problema, rendendo le classi non parziale e solo duplicando quelle piccole metodi helper (potrebbe spostare quelli ad una classe di supporto separato o qualcosa più tardi).

Ora ... perché mai sta succedendo questo? Ho pensato classi parziali sono stati compilati in una singola classe? Si tratta di un problema con le classi parziali in generale, NUnit, Test-Driven.net o qualcosa di completamente diverso?

È stato utile?

Soluzione

Probabilmente si mette l'attributo [TestFixture] in entrambi i file della classe parziale. Questo farà sì che TestFixture essere emesso due volte nella definizione della classe IL e NUnit verrà eseguito lo stesso codice di prova due volte. Si deve solo aggiungere [TestFixture] in uno dei file per la classe parziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top