我开发了一些 MDX 查询,用于测试我们的 SSAS 多维数据集。我想自动化这些查询,以便我可以通过单击一个按钮来执行它们,理想情况下是基于它们的输出的绿色条/红色条。
有没有办法可以将这些查询与 Visual Studio 挂钩以获得这种行为?
我开发了一些 MDX 查询,用于测试我们的 SSAS 多维数据集。我想自动化这些查询,以便我可以通过单击一个按钮来执行它们,理想情况下是基于它们的输出的绿色条/红色条。
有没有办法可以将这些查询与 Visual Studio 挂钩以获得这种行为?
你可以在这里尝试任何单元测试框架。尽管单元测试不适合这种用途,但它们在那里很有用 - 测试运行器具有开箱即用的红色/绿色指示器。
编写使用 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),其中包含类似的逻辑。
你应该检查Nbi。该框架允许您检查多维数据集的结构和成员,还可以将查询、mdx 或 sql、结果与预定义或动态结果进行比较。对于开源项目,文档相对详尽。
与其他解决方案相比,您无需使用 C# 编写代码,只需一个描述您的测试的 Xml 文件就足够了。