一千萬個為什麽

搜索

解決方案中的多個Silverlight單元測試項目

我正在構建一些Silverlight 4.0庫,這些庫是同一解決方案的一部分。我喜歡將它們分成單獨的項目,並為每個項目都有一個單元測試項目:

SolutionX
-LibraryProject1
---Class1.cs
---Class2.cs
-LibraryProject1.Test
---Tests1.cs
---Tests2.cs
-LibraryProject2
---Class1.cs
---Class2.cs
---CLass3.cs
-LibraryProject2.Test
---Tests1.cs
---Tests2.cs
---Tests3.cs
-LibraryProject3
---Class1.cs
-LibraryProject3.Test
---Tests1.cs

這在使用VS常規測試項目和基礎結構時非常有用,因為我可以創建並執行從每個Test項目聚合的測試列表。但是使用Silverlight單元測試框架,因為Silverlight單元測試項目必須是“啟動項目”,我無法想象如何一次性運行每個測試項目的測試集合。我必須分別運行每個,然後每次都切換啟動項目。我寧願避免創建復雜的構建腳本或構建定義 - 有沒有辦法一次運行所有測試?

-謝謝

最佳答案

我不知道你是否還在為此尋找解決方案但是可以創建一個項目來運行多個程序集中的所有測試。我剛剛創建了一個沒有任何測試的項目,給它引用了所有其他測試程序集,然後將Application_Startup方法更改為類似的方法。

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        UnitTestSettings settings = UnitTestSystem.CreateDefaultSettings();
        var testAssemblies = Deployment.Current.Parts.Where(p => p.Source.Contains("Tests")).ToList();
        foreach(var assembly in testAssemblies)
        {
            settings.TestAssemblies.Add(new AssemblyPart().Load(GetResourceStream(new Uri(assembly.Source, UriKind.Relative)).Stream));
        }

        RootVisual = UnitTestSystem.CreateTestPage(settings);
    }

您需要將 p.Source.Contains(“Tests”)更改為可以匹配所有單元測試項目的方法,但是您可以運行一個項目,它將為您提供良好的樹視圖所有運行的不同程序集。

轉載註明原文: 解決方案中的多個Silverlight單元測試項目