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
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?
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.
>Tags und Links unit-testing silverlight tfsbuild silverlight-3.0 tfs2008