2

我开发了一些 MDX 查询,用于测试我们的 SSAS 多维数据集。我想自动化这些查询,以便我可以通过单击一个按钮来执行它们,理想情况下是基于它们的输出的绿色条/红色条。

有没有办法可以将这些查询与 Visual Studio 挂钩以获得这种行为?

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 回答