柑橘類の経験のある人がいるといいのですが:) Oracle dbに対する柑橘類(1.4および2.3)のDBテストを作成しました。シトラスでは、クエリを文字列として渡すか、ファイル リソースを参照して渡すことができます。
String オプションは正常に機能し、検証は成功します。
oracle.jdbc.pool.OracleDataSource ds = new oracle.jdbc.pool.OracleDataSource();
//init ds ...
query(ds).statement("SELECT * FROM TOUR WHERE ID = 12345").validate("STATUS", "1");
ただし、Resource オプションは失敗します。
oracle.jdbc.pool.OracleDataSource ds = new oracle.jdbc.pool.OracleDataSource();
//init ds ...
query(ds).sqlResource("classpath:testdata/template/dbQuery.sql").validate("STATUS", "1");
コードをデバッグすると、Citrus は sqlResource ファイル内のすべてのステートメントが「;」で区切られていることを期待していることがわかりました。次に、個別のステートメントを正しく作成し、それらを実行しようとします。ただし、「;」で終わるステートメントを実行する 「SQLSyntaxErrorException: ORA00911: 無効な文字」という結果になります。
ここで何か不足していますか?