1

同じソリューションの一部である多数の 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 の通常のテスト プロジェクトとインフラストラクチャを使用する場合にうまく機能します。しかし、Silverlight 単体テスト プロジェクトは「スタートアップ プロジェクト」でなければならないため、Silverlight 単体テスト フレームワークでは、各テスト プロジェクトから一連のテストを一度に実行する方法がわかりません。それぞれを個別に実行してから、開始プロジェクトを毎回切り替える必要があります。複雑なビルド スクリプトやビルド定義を作成することは避けたいのですが、一度にすべてのテストを実行する方法はありますか?

-ありがとう

4

2 に答える 2

2

これに対する解決策をまだ探しているかどうかはわかりませんが、複数のアセンブリですべてのテストを実行する1つのプロジェクトを作成することは可能です。テストが含まれていないプロジェクトを1つ作成し、他のすべてのテストアセンブリへの参照を指定してから、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")ますが、1つのプロジェクトを実行すると、実行されたすべての異なるアセンブリの優れたツリービューが得られます。

于 2010-08-19T20:53:48.727 に答える
1

ええ、残念ながら、テストリストのサポートがなければ、それはそれほど簡単ではありません。

テストを1つのSilverlight単体テストプロジェクトに結合し、さまざまなセットをフォルダーに入れることをお勧めします。

次に、フレームワークのタグ式機能を使用して、実行時に実際に実行するテストを選択できます。この機能は、SilverlightToolkitの新しい2010年4月リリースでより簡単に使用できます。

于 2010-04-17T22:39:27.853 に答える