citrus waitFor()。文件无法读取文件

时间:2017-10-26 14:00:59

标签: citrus-framework

我正在尝试在我的Citrustest中使用waitFor()等待磁盘上的输出文件由我正在测试的进程写入。我用过这段代码

outputFile = new File “/esbfiles/blesbt/bl03orders.99160221.14289.xml");
waitFor().file(outputFile).seconds(65L).interval(1000L);

几秒钟后,文件会按预期显示在文件夹中。我正在运行测试代码的用户具有读取文件的权限。但是,waitFor()以超时结束。

09:46:44 09:46:44,818 DEBUG dition.FileCondition| Checking file path '/esbfiles/blesbt/bl03orders.99160221.14289.xml'
09:46:44 09:46:44,818 WARN  dition.FileCondition| Failed to access file resource 'class path resource [esbfiles/blesbt/bl03orders.99160221.14289.xml] cannot be resolved to URL because it does not exist'

可能是什么问题?我不能检查类路径之外的文件吗?

1 个答案:

答案 0 :(得分:0)

这实际上是柑橘中的一个错误。 Citrus正在使用文件路径而不是文件对象,并结合Spring的PathMatchingResourcePatternResolver,这会导致Citrus搜索类路径资源,而不是使用绝对文件路径作为外部文件系统资源。

您可以通过提供绝对文件路径而不是文件对象来解决此问题:

waitFor().file(“file:/esbfiles/blesbt/bl03orders.99160221.14289.xml")
         .seconds(65L)
         .interval(1000L); 

已打开有关已损坏文件对象转换的问题:https://github.com/christophd/citrus/issues/303

感谢您的指点!