2009-10-30 15 views
8

Abbiamo creato test unitari Silverlight creando un semplice progetto di test unitario vanilla .net, rimuovendo tutti i riferimenti eccetto quello unittestframework e quindi aggiungendo riferimenti agli assembly SL di cui abbiamo bisogno (sistema, System.Core, ...). Per ulteriori informazioni, guarda il post del blog this. Possiamo farlo, poiché stiamo aderendo al pattern MVVM e non abbiamo codice vicino al codebehind. Non stiamo testando la vista, ma la funzionalità in tutti i livelli dietro (VM-M in sostanza).Integrare i test dell'unità Silverlight in TFS Build

Ora, questo ci consente di testare la logica Silverlight nel nostro team ogni notte. Funziona abbastanza bene, fino a quando non iniziamo a mixare progetti SL e progetti .NET normali. Quando selezioniamo tutti i test di unità SL e li eseguiamo, passano. Lo stesso vale per i test delle unità .NET. Tuttavia, quando li eseguiamo tutti contemporaneamente, uno o l'altro falliscono completamente. Il messaggio che stiamo visualizzando indica: "Unit Test Adapter ha gettato un'eccezione: impossibile caricare uno o più tipi richiesti. Recupera la proprietà LoaderExceptions per ulteriori informazioni ..". Immagino che il problema sia che queste due serie di test utilizzano differenti assembly di sistema, ma non sono stato in grado di individuare il problema.

Qualcuno ha provato questo? Cheers, Phil

risposta

1

Suppongo che ci siano problemi con l'avere più librerie System, mscorlib, ecc. Nel dominio dell'app che probabilmente confondono l'ambiente di esecuzione del test.

È possibile separare questo in più esecuzioni di test per la generazione TFS, OPPURE creare uno script di msbuild con codice per chiamare mstest.exe per uno di essi e ottenere risultati in questo modo?

+0

Grazie Jeff, abbiamo risolto il problema chiamando mstest.exe nel nostro script di compilazione due volte (una volta per i test .NET, una volta per i test di Silverlight). – Phil

1

Come utilizzare due definizioni di compilazione separate? Possono essere entrambi attivati ​​allo stesso modo o allo stesso tempo. L'unica differenza è che si hanno riferimenti solo ai progetti SL in uno e solo i progetti .NET in un altro.

Se non si desidera fare riferimento ai progetti dalla definizione di build, è possibile creare un paio di soluzioni da utilizzare con le build e fare riferimento solo ai progetti SL in un'unica soluzione e solo ai progetti .Net in un'altra.

1

È inoltre possibile utilizzare un progetto di test Silverlight (creato dal modello di progetto Silverlight Toolkit) e utilizzare this solution per eseguire il test Silverlight sul server di creazione TFS.