2017-10-26 24 views
0

私はCitrustestでwaitFor()を使用して、ディスク上の出力ファイルがテスト中のプロセスによって書き込まれるまで待っています。私はこのコードを使用しましたcitrus 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' 

何が問題なのですか?クラスパスの外にあるファイルはチェックできませんか?

+0

どこにディスクが正確に配置されたターゲットフォルダですか?あなたのパスの先頭には、あなたのターゲットではないUNIXオペレーティングシステム上の絶対ファイルパスが生じるかもしれません。先頭のファイルパス区切り文字を削除すると、プロジェクトの作業ディレクトリからの相対パスになります。 –

+0

これはファイルの正確なパスです:**/esbfiles/blesbt/bl03orders.99160221.14289.xml **。したがって、ファイルシステムのルートにあるフォルダのサブフォルダにあります。このファイルは、コンストラクタでパスが指定されると、java.io.Fileで読み込み可能です。 –

答えて

0

これは実際にCitrusのバグです。 Citrusはファイルオブジェクトの代わりにファイルパスを処理しており、SpringのPathMatchingResourcePatternResolverと組み合わせることにより、絶対ファイルパスを外部ファイルシステムリソースとして使用する代わりにCitrusがクラスパスリソースを検索します。

あなたは、代わりにこのようなファイルオブジェクトの絶対ファイルパスを提供することにより、この問題を解決することができます壊れたファイルオブジェクトの変換に関する

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

問題が開かれました。それを指しているためhttps://github.com/christophd/citrus/issues/303

感謝を!

関連する問題