Domanda

In .NET dovresti inserire progetti di unit test con il resto della soluzione? O dovrebbe esserci una soluzione di test che ospita tutti i progetti di test?

Abbiamo tutti i progetti di test con la nostra soluzione di base di codice ... sembra un po 'ingombrante.

Cosa fai di solito?

È stato utile?

Soluzione

Nel nostro attuale progetto abbiamo deciso di mettere tutti i test unitari in progetti separati. Il codice dell'applicazione e i test sono nella stessa soluzione, ma almeno possiamo costruire (e distribuire) una versione senza il codice di unit test.

Il rovescio della medaglia di questo - finora - è stato che a volte i test delle unità non riescono a raggiungere determinati membri del codice dell'applicazione (protetti e interni), ma ciò di solito ci porta a scoprire che il nostro design potrebbe essere migliorato. p>

E immagino che dovrei sottolineare un thread simile Qui con più risposte sullo stesso / argomento simile.

Altri suggerimenti

Li ho sempre mantenuti come parte della soluzione - dopo tutto, fanno parte della soluzione. Puoi avere più soluzioni per diversi approcci alla visualizzazione dei tuoi progetti, quindi una soluzione senza test potrebbe essere ciò che vorresti creare in alcuni casi.

Il nostro codice di prova non viene fornito ma fanno parte della soluzione nel suo insieme. Il nostro costruttore separa i gruppi di prova e i componenti principali. Dal punto di vista della gestione delle soluzioni sembra che una soluzione con oltre 140 progetti sia travolgente.

Utilizziamo sempre un progetto separato all'interno della stessa soluzione.

Ciò significa che possiamo essere certi (usando i riferimenti) che il codice unit-test verifica anche i nostri riferimenti espliciti (piuttosto che raccogliere implicitamente una certa visibilità di qualcosa perché si trova nello stesso assieme - ad es. " Interno ")

Generalmente inserisco test unitari nel loro progetto e test di integrazione nel loro progetto all'interno della soluzione applicativa.

Dove lavoro, stiamo valutando di mettere i test Web in una soluzione separata. Abbiamo in programma di condividere la creazione di test Web con il team di controllo qualità e non vogliamo che questi test diventino una responsabilità di costruzione.

Non utilizzo .NET, ma quando sviluppo casi di test di qualsiasi tipo, li tengo isolati dal resto del codice in modo da poter distribuire l'applicazione senza i test. L'utente non ha bisogno o addirittura desidera quella roba.

Guarda il design del tuo progetto. Se è vicino al layout MVC o ad una delle sue alternative, dovresti avere livelli distinti di assiemi diversi. Crea un sottoassieme di prova per ogni livello del tuo progetto.

Il nostro progetto di test di solito viene eseguito al posto del progetto che crea il file EXE. Il nostro progetto EXE è una shell sottile che passa eventi e informazioni a un assembly pieno di classi di controller che ha il codice che la maggior parte delle persone inserisce in un progetto EXE. Ciò consente al progetto di prova di fingere di essere il file EXE per il 90% del normale processo di prova.

Stiamo ancora elaborando la migliore disposizione per i casi di test reali. In questo momento abbiamo diversi livelli principali di Utility Framework, Applicaiton Objects, UI Framework, Comandi, Controller UI ed EXE. Abbiamo un assemblaggio per ogni livello ad eccezione di EXE (che viene testato manualmente). Quando modifichiamo un assembly, carichiamo il assembly di prova per quel livello. Quando dobbiamo fare qualcosa che tocca ogni livello, dobbiamo caricare tutti i gruppi di test.

Durante il nostro processo di creazione di un pulsante eseguiamo il progetto exe di test. (Abbiamo un'utilità separata per questo).

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