您如何“单元测试”某些报表引擎(如Crystal Reports或SQL Server Reporting Services)创建的报表?
答案 0 :(得分:6)
为了测试我们自己的基于Java的报告产品i-net Clear Reports,我们运行一系列测试报告,将它们导出为各种导出格式,确保输出符合要求,然后继续使用它们报告每天运行,将结果与原始数据进行比较。然后,任何差异都会显示为测试失败。
它对我们来说效果很好。这样做的缺点是,在重置测试数据之前,任何可能没有任何差异的细微差别都会显示为测试失败。
旁注:这不是单元测试,而是验收测试。但我不明白你怎么能真正“整体测试”整个报告。
答案 1 :(得分:6)
报告的问题类似于GUI的问题。 如果报告/ GUI有很多(错位的)情报,那将使测试变得困难。 然后解决方案是
答案 2 :(得分:2)
我能想到的最好的方法是将结果与预期的输出进行比较。
也许可以添加一些智能,但测试这些大块并不容易。
答案 3 :(得分:0)
我同意Gamecat。
从固定(常量)数据生成报告,并将其与该数据的预期输出进行比较。
之后,您可以使用简单的测试,例如diff(检查文件是否相同)
答案 4 :(得分:0)
我目前的想法是在两个级别创建测试:
单元测试:构建报告以使用一些想法来测试UI,例如Humble View。报告本身将尽可能愚蠢。它应该主要包括简单的字段绑定。然后,可以对作为这些绑定源的数据项/对象进行单元测试。
接受测试:生成一些示例报告。先用手验证。然后设置一个自动测试,使用diff进行比较。