2009-10-30 43 views
8

我們一直在創造通過創建一個普通的.NET單元測試項目,除去除了unittestframework一個所有引用,然後加入到我們所需要的SL程序集的引用的Silverlight單元測試(系統, System.Core,...)。有關更多信息,請參閱this博客文章。我們可以做到這一點,因爲我們堅持使用MVVM模式,並且在代碼隱藏方面接近無代碼。我們不是測試視圖,而是測試所有層(VM-M基本上)的功能。集成在TFS的Silverlight單元測試構建

現在,這讓我們每天晚上來測試我們的團隊建設silverlight的邏輯。這工作得很好,直到我們開始混合SL項目和普通的.NET項目。當我們選擇所有SL單元測試並運行它們時,它們都會通過。 .NET單元測試也是如此。但是,當我們立刻全部運行它們時,無論是一套還是另一套完全失敗。我們看到的消息指出:「單元測試適配器拋出異常:無法加載一個或多個請求的類型。檢索LoaderExceptions屬性以獲取更多信息。」。我想問題是這兩組測試使用不同的系統組件,但我一直無法查明問題。

有沒有人嘗試過呢? 乾杯, 菲爾

回答

1

我猜,有與應用領域,可能混淆測試執行環境具有多系統,mscorlib程序等庫的問題。

你能分成多個測試這個運行的TFS生成,或者創作一個MSBuild腳本代碼來調用mstest.exe爲其中之一,得到的結果呀?

+0

感謝傑夫,我們解決了這個問題,通過調用mstest.exe在我們構建腳本兩次(一次爲.NET測試,一次爲Silverlight測試)。 – Phil 2009-12-23 22:15:20

1

如何使用兩個單獨的構建定義?它們都可以以相同的方式或同時觸發。唯一的區別是你只有一個SL項目的引用,另一個只引用.NET項目。

如果你不想從構建定義引用項目,你可以創建幾個解決方案與您建立和參考只在一個解決方案中的SL項目,只是在另一個.NET項目使用。

1

您也可以使用Silverlight的測試項目(從Silverlight工具包項目模板創建),並使用this solution在您的TFS運行的Silverlight測試構建服務器。