Citrus Framework не может выполнять операторы из SQLResource
Я надеюсь, что есть кто-то с опытом в цитрусовых:) Я написал тест БД цитрусовых (1.4 и 2.3) против базы данных Oracle. В цитрусовых вы можете передать ваш запрос в виде строки или путем ссылки на ресурс файла.
Опция 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: недопустимый символ".
Так я что-то здесь упускаю?
1 ответ
Считайте, что это ошибка, проблема открыта ( https://github.com/christophd/citrus/issues/79)
Проблема была исправлена в 2.5.2 выпуске Citrus