Integrieren Sie Silverlight-Komponententests in TFS-Build

8

Wir haben Silverlight-Komponententests erstellt, indem wir ein Unit-Testprojekt für einfache Vanilla-Netzwerke erstellt haben, alle Referenzen außer dem Unitestframework entfernt und dann Referenzen zu den benötigten SL-Assemblys hinzugefügt haben (System, System.Core, ...). ). Weitere Informationen finden Sie in diesem Blogeintrag. Wir können dies tun, da wir uns an das MVVM-Muster halten und nahezu keinen Code im Codebehind haben. Wir testen nicht die Ansicht, sondern die Funktionalität in allen dahinter liegenden Schichten (im Prinzip VM-M).

Jetzt können wir die Silverlight-Logik in unserem Team jeden Abend testen. Das funktioniert ziemlich gut, bis wir beginnen, SL-Projekte und normale .NET-Projekte zu mischen. Wenn wir alle SL-Unit-Tests auswählen und ausführen, werden sie bestanden. Gleiches gilt für die .NET-Unit-Tests. Wenn wir sie alle auf einmal laufen lassen, scheitert entweder der eine oder der andere vollständig. Die Meldung, die wir sehen, besagt: "Unit Test Adapter warf Ausnahme: Kann einen oder mehrere der angeforderten Typen nicht laden. Holen Sie die LoaderExceptions-Eigenschaft für weitere Informationen.". Ich vermute, das Problem ist, dass diese beiden Tests unterschiedliche System-Assemblies verwenden, aber ich konnte das Problem nicht lokalisieren.

Hat jemand das versucht? Prost, Phil

    
Phil 30.10.2009, 09:14
quelle

3 Antworten

1

Ich vermute, dass es Probleme mit mehreren Bibliotheken von System, Mscorlib usw. in der App-Domäne gibt, die die Testausführungsumgebung wahrscheinlich verwirren.

Können Sie das in mehrere Testläufe für den TFS-Build aufteilen, ODER vielleicht ein Msbuild-Skript mit Code erstellen, um mstest.exe für einen von ihnen aufzurufen und Ergebnisse auf diese Weise zu erhalten?

    
Jeff Wilcox 05.11.2009 08:03
quelle
1

Wie wäre es mit zwei separaten Build-Definitionen? Sie können beide auf die gleiche Weise oder gleichzeitig ausgelöst werden. Der einzige Unterschied besteht darin, dass Sie nur auf die SL-Projekte in einem und nur auf die .NET-Projekte in einem anderen verweisen.

Wenn Sie die Projekte nicht aus der Build-Definition referenzieren möchten, können Sie einige Lösungen für Ihre Builds erstellen und nur die SL-Projekte in einer Lösung und nur die .Net-Projekte in einer anderen referenzieren.

>     
Ryan Pedersen 18.02.2010 15:20
quelle
1

Sie können auch ein Silverlight-Testprojekt (erstellt aus der Silverlight Toolkit-Projektvorlage) verwenden und pydufour 25.01.2011 19:32

quelle