8
votes

Intégrez les tests d'unité Silverlight dans la construction TFS

Nous créons des tests d'unité Silverlight en créant un projet de test uni à la vanille .NET, en supprimant toutes les références, à l'exception de l'unitestFramework One, puis ajoutez des références aux assemblages SL dont nous avons besoin (système, system.core, ... ). Pour plus d'informations, consultez Ce Blog Publier. Nous pouvons le faire, car nous adhérons au motif MVVM et que nous ne disposons d'aucun code dans le codeBeHind. Nous ne testons pas la vue, mais la fonctionnalité de toutes les couches derrière (vm-m fondamentalement).

Maintenant, cela nous permet de tester la logique Silverlight dans notre équipe de notre équipe tous les soirs. Cela fonctionne plutôt bien, jusqu'à ce que nous commencions à mélanger des projets SL et des projets normaux .NET. Lorsque nous sélectionnons tous les tests de l'unité SL et les exécuter, ils passent. Il en va de même pour les tests unitaires .NET. Lorsque nous les exécutions tous à la fois, un ensemble ou l'autre échoue complètement. Le message que nous constatons des états: "L'adaptateur de test d'unité a jeté une exception: impossible de charger un ou plusieurs des types demandés. Récupérer la propriété LoadExceptions pour plus d'informations.". Je suppose que la question est que ces deux ensembles de tests utilisent différents ensembles de systèmes, mais je n'ai pas pu identifier le problème.

Quelqu'un a-t-il essayé cela? À votre santé, Phil


0 commentaires

3 Réponses :


1
votes

Je suppose que des problèmes ont des problèmes avec plusieurs systèmes, MSCORLIB, etc. Bibliothèques du domaine d'application qui confondent probablement l'environnement d'exécution des tests.

Pouvez-vous séparer cela en plusieurs essais pour la construction TFS, ou peut-être l'auteur d'un script Msbuild avec code pour appeler mstsest.exe pour l'un d'entre eux et obtenir des résultats de cette façon?


1 commentaires

Merci Jeff, nous l'avons résolu en appelant Mstest.exe dans notre script de construction deux fois (une fois pour les tests .NET, une fois pour les tests Silverlight).



1
votes

Que diriez-vous d'utiliser deux définitions de construction distinctes? Ils peuvent tous les deux être déclenchés de la même manière ou en même temps. La seule différence est que vous avez des références à des projets SL dans un et juste les projets .NET dans un autre.

Si vous ne vouliez pas faire référence aux projets de la définition de construction, vous pouvez créer quelques solutions à utiliser avec vos constructions et ne référence que les projets SL en une solution et uniquement les projets .NET dans un autre.


0 commentaires

1
votes

Vous pouvez également utiliser un projet de test Silverlight (créé à partir du modèle de projet Silverlight Toolkit) et utiliser cette solution Pour exécuter votre test Silverlight sur votre serveur de construction TFS.


0 commentaires