【发布时间】:2016-07-06 18:38:19
【问题描述】:
我正在对我们的 SSAS 表格项目的自动化测试工具进行一些研究。我找到了 NBI,觉得它真的很酷。我尝试设置它并成功运行了一些基本测试。但是,当我尝试测试 dax 计算时,它显示“未找到函数”(见屏幕截图)。听起来它不支持 SUM,但鉴于 SUM 是一个基本功能,我想它应该可以工作。由于我是这个工具的新手,我想仔细检查我是否做错了什么,或者这只是错误的意思......(不支持的功能)。
我回去查看了 NBi 文档,其中提到要检查他们的 NCAL.dll 以获取所有可用的表达式。不幸的是,我无法打开该 dll 文件的可读版本。任何帮助表示赞赏。
这是我要测试的公式:
=SUMX(FILTER(MyTable, AND(MyTable[Date] = EARLIER(MyTable[Date]), MyTable[Account] = EARLIER(MyTable[Account]))), MyTable[Amount])
XML 代码 (nbits) 文件
<test name="My second test: Calculated column compared to DAX formula">
<system-under-test>
<execution>
<query connectionString="Provider=MSOLAP.7;Data Source...">
<![CDATA[
EVALUATE
SUMMARIZE (MyTable, MyTable[Date], MyTable[Account], MyTable[Amount], MyTable[CalculatedAmount])
]]>
</query>
</execution>
</system-under-test>
<assert>
<evaluate-rows>
<variable column-index="0">Date</variable>
<variable column-index="1">Account</variable>
<variable column-index="2">Amount</variable>
<variable column-index="3">CalculatedAmount</variable>
<expression column-index="3" type="numeric" tolerance="0.01"> = SUMX(FILTER(MyTable, AND(MyTable[Date] = EARLIER(MyTable[Date]), MyTable[Account] = EARLIER(MyTable[Account]))), MyTable[Amount])</expression>
</evaluate-rows>
</assert>
</test>
【问题讨论】:
-
只是澄清一下 - 我在简单的 SUM 和我的实际表达式 SUMX 之间切换.. 都不起作用
-
你能发布你的测试的 xml 吗?并用简单的英语描述您在此测试中要测试的内容? “我要测试的公式”是什么意思...是您项目中实现的公式还是您尝试在测试中指定以执行断言的公式?
-
我刚刚根据您的要求发布了 XML。我想测试的很简单。在第一个结果集中,我从表格模型中选择 4 列,第四列 (CalculatedAmount) 作为计算列。现在,在第二个结果集中,我正在比较相同的数据,但我使用 DAX 表达式作为 CalculatedAmount 列的例外。这是我在表格模型中输入的相同表达式,用于获取第一个结果集的计算金额。我想看看这个工具是否可以支持我的 DAX 表达式。如果是这样,我的测试应该通过。如果仍然没有意义,请告诉我。
标签: automated-tests ssas dax ssas-tabular