我可以对Informatica Powercentre工作流程进行单元测试吗?
修改 更具体地说,我可以模拟源和目标并测试其间的步骤吗?例如。如果我有一个带有Oracle源和文本文件目标的工作流,我可以在没有Oracle和文本文件的情况下测试它。?
答案 0 :(得分:1)
是的,您可以运行工作流程并测试输出目标表。 (从工作流程管理器中,右键单击工作流程,然后单击“从开始运行工作流程”。
工作流程成功后,查看目标中的数据以查看映射和转换是否正常工作。
就像任何其他单元测试一样,您需要在运行工作流之前识别源(和目标)中的记录以及目标中的预期结果。
例如,如果我想测试具有SCD type2逻辑的映射,则可以运行工作流两次并根据需要更新源列,并在运行工作流后检查当前记录是否已正确更新,以及是否记录历史版本的新行已正确更新。
答案 1 :(得分:1)
不,你不能。
创建并保存映射时,Informatica会验证映射是否在语法上有效。如果不是,它会给你一个错误信息。在底部面板中查找错误。您可以转到Mappings Menu>来验证映射。验证
您可以类似地验证工作流程:工作流程菜单>验证
要运行工作流程,您必须拥有可用且已连接的源和目标。如果您不想写入目标或不想进行完整的卷测试,可以在会话级别使用“启用测试加载”(编辑>属性>启用测试加载)并将“行数”设置为试验”。
答案 2 :(得分:0)
我们在Informatica中尝试做的是构建源文件,构建预期的输出文件,然后运行工作流以生成实际的输出文件。然后,我们对预期输出文件与实际输出文件进行字节码比较。我们在这里测试的是我们的映射逻辑是否已经实现,因为我们认为应该实现它。
以下python脚本将进行测试:
import filecmp
import csv
import sys
testRepository = open('testRepository.txt','rb')
testReader = csv.reader(testRepository)
print 'Test Number\tResult'
for test in testReader:
print test[0] + '\t\t' + str(filecmp.cmp(test[1], test[2]))
不完全是模拟,但基本上将是正确测试您的映射是否正确所必需的。我的Informatica本身会检查映射的有效性。