2

SSASキューブのテストに使用されるMDXクエリをいくつか開発しました。これらのクエリを自動化して、ボタンをクリックするだけですべてを実行できるようにします。理想的には、出力に基づいて緑色のバー/赤色のバーを実行します。

これらのクエリをVisualStudioに接続して、この動作を取得する方法はありますか?

4

2 に答える 2

7

ここでは、任意の単体テストフレームワークを試すことができます。単体テストはそのような使用を目的としたものではありませんが、そこで役立つ場合があります。テストランナーは、箱から出してすぐに赤/緑のインジケーターを使用できます。

ADOMD.NET(http://j.mp/NtKFih)を使用してmdxを実行するテストを記述し、実行中の例外はテストに失敗します。CellSetオブジェクトを使用して結果を調査し、テストに合格したかどうかを判断することもできます。

Microsoftの単体テストフレームワークを使用した簡単な例(System.Data.dllおよびMicrosoft.AnalysisServices.AdomdClient.dllへの参照が必要です):

using Microsoft.AnalysisServices.AdomdClient;
...
[TestMethod]
public void CubeHealthCheck1()
{
    using (AdomdConnection conn = new AdomdConnection("Data Source=localhost;
           Initial Catalog=SejmCube")) //your connection string here
    {
        conn.Open();
        AdomdCommand cmd = conn.CreateCommand();
        //your mdx here
        cmd.CommandText = "SELECT NON EMPTY { [Measures].[Glosow Przeciwko] } 
                           ON COLUMNS FROM [Sejm]";
        CellSet cs = cmd.ExecuteCellSet();
    }
}

例外があるとテストに失敗します(たとえば、接続がありません)。try/ catchを追加して、メッセージに何が問題だったかを通知できます。

このテストは、たとえば[テストリストエディター]ウィンドウから実行できます テストリストエディタウィンドウ 。次に、[テスト結果]ウィンドウにインジケーター付きの結果が表示されます。 テスト結果ウィンドウ

単体テストフレームワークを使用したくない場合は、同様のロジックを内部に備えたカスタムVisual Studio拡張機能( http://j.mp/QfMNQt )を開発できます。

于 2012-08-26T00:24:55.893 に答える
3

Nbiを確認する必要があります。このフレームワークを使用すると、キューブの構造とメンバーを確認できるだけでなく、クエリ、mdx、またはsqlの結果を事前定義された結果または動的な結果と比較することもできます。ドキュメントは、オープンソースプロジェクトでは比較的網羅的です。

他のソリューションと比較すると、C#でコーディングする必要はなく、テストを記述したXmlファイルで十分です。

于 2013-05-15T23:57:03.003 に答える