0

citrus-framework を使用して、FTP サーバーにいくつかのファイルを書き込む統合をテストしようとしています。

一部のファイルが ftp にアップロードされるまで待機する必要があります (これwaitFor().condition()を達成するためにステートメントを使用しています)。その後、送信されたメッセージを受信し、いくつかのアサーションを実行します。

import com.consol.citrus.annotations.CitrusTest;
import com.consol.citrus.condition.Condition;
import com.consol.citrus.context.TestContext;
import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;
import com.consol.citrus.ftp.server.FtpServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ActiveProfiles;
import org.testng.annotations.Test;

import java.io.File;

@ActiveProfiles(value = "ftpTest")
@Test
public class FtpTest extends TestNGCitrusTestDesigner {
    @Autowired
    FtpServer ftpServer;
    @Autowired
    TestContext context;

    @CitrusTest(name = "ftpTest")
    public void ftpTest() {

        // here I start my integration that uses a cron to upload the file
        // this code is irrelevant for the example

        Condition waitUntilFileIsUploaded = new Condition() {
            @Override
            public String getName () {
                return "Check files on FTP";
            }

            @Override
            public boolean isSatisfied (TestContext testContext){
                return new File("/tmp/foo_dir").listFiles().length != 0;
            }

            @Override
            public String getSuccessMessage (TestContext testContext){
                return "Files found in FTP!";
            }

            @Override
            public String getErrorMessage (TestContext testContext){
                return "No file was found in FTP";
            }
        };

        waitFor().condition(waitUntilFileIsUploaded).seconds(120L).interval(500L);
        ftpServer.createConsumer().receive(context);
    }
}

このテストを実行しようとすると、実行されず、ファイルが FTP にアップロードされる前に実行waitFor()されるように見えます。ftpServer.createConsumer().receive(context);

これは私が得ているエラーです:

ftpTest>TestNGCitrusTest.run:57->TestNGCitrusTest.run:111->TestNGCitrusTestDesigner.invokeTestMethod:73->TestNGCitrusTest.invokeTestMethod:133->ftpTest:49 » ActionTimeout

どうすればこれを修正できますか?また、Citrus で FTP Java DSL を使用するための完全な例は大歓迎です!

4

1 に答える 1