Pentaho水壶:如何为转换/工作设置测试?

问题描述 投票:12回答:3

我一直在使用Pentaho Kettle很长一段时间以前我所做的转换和工作(使用勺子)已经非常简单地从db,rename等加载,输入到另一个db的东西。但是现在我一直在进行转换,这些转换做了一些更复杂的计算,我现在想以某种方式进行测试。

所以我想做的是:

  1. 设置一些测试数据
  2. 运行转换
  3. 验证结果数据

一种选择可能是做一个测试转换的Kettle测试工作。但是由于我的转换与java项目有关,我更喜欢从jUnit运行测试。所以我考虑过做一个jUnit测试:

  1. 设置测试数据(使用dbunit)
  2. 运行转换(从命令行使用kitchen.sh)
  3. 验证结果数据(使用dbunit)

然而,这种方法需要一些并不总是可用的测试数据库(oracle等昂贵/遗留数据库)我更喜欢的是,如果我可以模拟或传递一些存根测试数据到我的输入步骤一些方法。

关于如何测试Pentaho水壶转换的任何其他想法?

java testing junit pentaho kettle
3个回答
4
投票

在jira.pentaho.com上有一个jira(我没有它可以提供)正是这个请求 - 但是它还没有实现。

所以你确实有正确的解决方案 - 我还会添加jenkins和一个蚂蚁脚本来将它们组合在一起。我在报告测试方面做了类似的事情 - 我实际上有一个pentaho作业加载数据,然后它执行报告,然后它将输出与已知输出和报告的通过/失败进行比较。


3
投票

如果将水壶作业分为两个阶段:

  • 将数据加载到流中
  • 处理和更新数据

您可以使用复制行在加载数据的末尾生成流步骤,并从结果中获取行以在流程步骤开始时获取行。

如果你这样做,那么你可以使用任何方法加载数据(水壶变换,从ant脚本调用dbunit),并可以模拟你想要的任何数据库表。

我用它来测试我编写的一些ETL脚本,它运行得很好。


1
投票

您可以使用数据验证程序步骤。当然不是一个完整的单元测试套件,但我认为有时可以快速检查数据完整性。您可以一次运行多个测试。

对于更“严肃”的测试,我会推荐@codek answer并在Jenkins下执行你的水壶。

© www.soinside.com 2019 - 2024. All rights reserved.