Ошибка использования DBUtils в первом сценарии - PullRequest
0 голосов
/ 29 августа 2018

Когда я использую DBUtils.java в Eclipse и запускаю там тесты, он работает нормально, но когда я запускаю его через Jenkins, первый раз, когда используются DBUtils, происходит сбой. И второй работает ... При первом использовании db.readRows происходит сбой.

    Scenario: Account Create

    Given path 'accounts'
    And header Authorization = setup.authorization
    And request {identifier: KarateCreation, subscribers:[{identifier:KarateCreation, firstName:KarateCreation, lastName:KarateCreation}]}
    When method POST
    And match response contains { id: '#number', identifier: KarateCreation }
    Then status 201

    * def id = response.id
    * def accountNumber = response.identifier

    # use jdbc to validate
    * def config = { url: #(dbConnectionString), driverClassName: 'oracle.jdbc.OracleDriver' }
    * def DbUtils = Java.type('restapi.util.DbUtils')
    * def db = new DbUtils(config)

    * def rs = db.readRows("SELECT ACCOUNTID, ACCOUNTNUMBER FROM ACCOUNT WHERE ACCOUNTNUMBER = 'KarateCreation'")
    * match rs contains { ACCOUNTID: '#(id)', ACCOUNTNUMBER: KarateCreation }

Ошибка:

   * def rs = db.readRows("SELECT ACCOUNTID, ACCOUNTNUMBER FROM ACCOUNT WHERE ACCOUNTNUMBER = 'KarateCreation'")(Scenario: Account Create)  Time elapsed: 0.039 sec  <<< ERROR!
  java.lang.RuntimeException: javascript evaluation failed: db.readRows("SELECT ACCOUNTID, ACCOUNTNUMBER FROM ACCOUNT WHERE ACCOUNTNUMBER = 'KarateCreation'")
at com.intuit.karate.ScriptBindings.eval(ScriptBindings.java:115)
at com.intuit.karate.ScriptBindings.updateBindingsAndEval(ScriptBindings.java:103)
at com.intuit.karate.ScriptBindings.evalInNashorn(ScriptBindings.java:88)
at com.intuit.karate.Script.evalJsExpression(Script.java:362)
at com.intuit.karate.Script.evalKarateExpression(Script.java:284)
at com.intuit.karate.Script.evalKarateExpression(Script.java:170)
at com.intuit.karate.Script.assign(Script.java:598)
at com.intuit.karate.Script.assign(Script.java:524)
at com.intuit.karate.StepDefs.def(StepDefs.java:305)
at ✽.* def rs = db.readRows("SELECT ACCOUNTID, ACCOUNTNUMBER FROM ACCOUNT WHERE ACCOUNTNUMBER = 'KarateCreation'")(restapi/accounts/accounts.feature:31)
  Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLRecoverableException: IO Error: Connection reset

1 Ответ

0 голосов
/ 29 августа 2018

Сначала позвольте мне мягко напомнить вам, что DBUtils.java был создан в качестве демонстрационного примера и не является частью ядра каратэ. Я начинаю сожалеть, что поместил это туда из-за таких вопросов. См. другой пример .

В любом случае, пожалуйста, поработайте с кем-нибудь из вашей команды или организации, чтобы решить эту проблему:

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: 
Could not get JDBC Connection; nested exception is
java.sql.SQLRecoverableException: IO Error: Connection reset

Вполне возможно, что ваш ящик Jenkins не может установить соединение с базой данных, а порты отключены от огня и т. Д.

...