2009-10-30 12 views
8

Zostaliśmy tworzenie Silverlight testów jednostkowych, których autorem jest stworzenie zwykły waniliowy projekt testowy jednostka .net, usuwając wszelkie odniesienia wyjątkiem unittestframework jednej, a następnie dodanie odniesienia do zespołów SL musimy (systemowe, System.Core, ...). Więcej informacji można znaleźć w poście na blogu this. Możemy to zrobić, ponieważ stosujemy się do wzorca MVVM i prawie nie ma kodu w kodzie źródłowym. Nie testujemy widoku, ale funkcjonalność we wszystkich warstwach (zasadniczo VM-M).Zintegruj Silverlight Testy jednostkowe w TFS zbudować

Teraz, to pozwala nam przetestować silverlight logiki w naszej budowie zespołu co noc. Działa to całkiem dobrze, dopóki nie zaczniemy mieszać projektów SL i normalnych projektów .NET. Kiedy wybieramy wszystkie testy jednostkowe SL i uruchamiamy je, przechodzą one. To samo dotyczy testów jednostki .NET. Kiedy jednak uruchomimy je wszystkie naraz, albo jeden zestaw, albo drugi kompletnie się nie powiedzie. Komunikat, który widzimy, stwierdza: "Adapter testu jednostkowego rzucił wyjątek: Nie można załadować jednego lub więcej żądanych typów. Pobierz właściwość LoaderExceptions, aby uzyskać więcej informacji ..". Sądzę, że problem polega na tym, że te dwa zestawy testów używają różnych zestawów systemowych, ale nie udało mi się zidentyfikować problemu.

Czy ktoś próbował tego? Cheers, Phil

Odpowiedz

1

Zgaduję, że istnieją problemy z konieczności wielokrotnego systemu, mscorlib itd bibliotek w domenie aplikacji, które prawdopodobnie mylić środowiska wykonania testu.

można rozdzielić to na kilka próbnych dla TFS budować, a może autor skryptu msbuild z kodem zadzwonić mstest.exe do jednego z nich i uzyskać wyniki w ten sposób?

+0

Dzięki Jeff, rozwiązaliśmy go nazywając mstest.exe w naszym skrypcie kompilacji dwukrotnie (raz do testów .NET, Silverlight raz do testów). – Phil

1

Jak na temat korzystania z dwóch oddzielnych definicji budować? Oba mogą być uruchamiane w ten sam sposób lub w tym samym czasie. Jedyną różnicą jest to, że masz odniesienia do tylko projektów SL w jednym i tylko projektów .NET w innym.

Jeśli nie chcesz odwoływać się do projektów z definicji kompilacji, możesz utworzyć kilka rozwiązań do użytku z kompilacjami i odwoływać się tylko do projektów SL w jednym rozwiązaniu i tylko do projektów .Net w innym.

1

Można również użyć projektu testowego Silverlight (utworzonego z szablonu projektu Silverlight Toolkit) i użyć this solution do uruchomienia testu Silverlight na serwerze budowania TFS.