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

时间:2012-04-03 12:49:43

标签: java testing junit pentaho kettle

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

所以我想做的是:

  1. 设置一些测试数据
  2. 运行转换
  3. 验证结果数据
  4. 一个选项可能是制作一个测试转换的Kettle测试工作。但是由于我的转换与java项目有关,我更喜欢从jUnit运行测试。所以我考虑过做一个jUnit测试:

    1. 设置测试数据(使用dbunit)
    2. 运行转换(从命令行使用kitchen.sh)
    3. 验证结果数据(使用dbunit)
    4. 然而,这种方法需要测试数据库并不总是可用(oracle等昂贵/遗留数据库)我更喜欢的是,如果我可以模拟或传递一些存根测试数据到我的输入步骤一些方法。

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

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

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

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

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

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

答案 2 :(得分:1)

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

对于更严重的"测试我将推荐@codek answer并在Jenkins下执行你的水壶。

data validator step screenshot