Когда karate-config.js терпит неудачу, это печатает ошибку для каждой функции - PullRequest
1 голос
/ 15 апреля 2019

Каратэ-Нетти версия 0.9.2

Всякий раз, когда моя оценка karate-config.js терпит неудачу, она печатает:

16:49:28.753 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - evaluation of 'karate-config.js' failed: javascript function call failed: unexpected 'configure' key: 'followRedirectss'
16:49:28.761 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javascript function call failed: unexpected 'configure' key: 'followRedirectss'
16:49:28.762 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - failed function body: function fn(){   
   << MY SUPER AMAZING SCRIPT HERE >>
}

Заметьте, что я сделал это, если намеренно потерпел неудачу с тривиальной ошибкой, просто чтобы спровоцировать ее ^

После ошибки он напечатал бы ее для каждого сценария в каждом имеющемся у меня файле объектов, поэтому, имея 55 файлов объектов с 304 сценариями и файл karate-config.js со 104 строками, вы можете вообразить, что это очень быстро выходит из строя.

Таким образом, karate-config длиной 5 строк с преднамеренным сбоем + 2 функции с одним сценарием выглядят примерно так:

Generating a RSA private key
.+++++++++++++++++++++++++++
...+++++++++++++++++++++++++++
writing new private key to 'key.pem'
-----
17:06:36.217 [main] INFO  com.intuit.karate.netty.Main - Karate version: 0.9.2
17:06:36.426 [main] INFO  com.intuit.karate.Runner - Karate version: 0.9.2
17:06:37.434 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javascript function call failed: unexpected 'configure' key: 'followRedirectss'
17:06:37.435 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - failed function body: function fn(){   
  karate.configure('followRedirectss', false);
  // imagine having additional ~100 lines here
  // and additional 54 features
}
17:06:37.436 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - evaluation of 'karate-config.js' failed: javascript function call failed: unexpected 'configure' key: 'followRedirectss'
17:06:37.554 [pool-1-thread-1] INFO  com.intuit.karate.Runner - <<fail>> feature 1 of 2: src/features/null/null.feature
---------------------------------------------------------
feature: src/features/null/null.feature
report: target/src.features.null.null.json
scenarios:  1 | passed:  0 | failed:  1 | time: 0.0000
---------------------------------------------------------
17:06:37.584 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javascript function call failed: unexpected 'configure' key: 'followRedirectss'
17:06:37.585 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - failed function body: function fn(){   
  karate.configure('followRedirectss', false);
  // imagine having additional ~100 lines here
  // and additional 54 features
}
17:06:37.586 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - evaluation of 'karate-config.js' failed: javascript function call failed: unexpected 'configure' key: 'followRedirectss'
17:06:37.589 [pool-1-thread-1] INFO  com.intuit.karate.Runner - <<fail>> feature 2 of 2: src/features/null/null.1.feature
---------------------------------------------------------
feature: src/features/null/null.1.feature
report: target/src.features.null.null.1.json
scenarios:  1 | passed:  0 | failed:  1 | time: 0.0000
---------------------------------------------------------
Karate version: 0.9.2
======================================================
elapsed:   1.16 | threads:    1 | thread time: 0.00 
features:     2 | ignored:    0 | efficiency: 0.00
scenarios:    2 | passed:     0 | failed: 2
======================================================
failed features:
src.features.null.null: null.feature:3 - evaluation of 'karate-config.js' failed: javascript function call failed: unexpected 'configure' key: 'followRedirectss'
src.features.null.null.1: null.1.feature:3 - evaluation of 'karate-config.js' failed: javascript function call failed: unexpected 'configure' key: 'followRedirectss'

Exception in thread "main" picocli.CommandLine$ExecutionException: there are test failures
    at com.intuit.karate.netty.Main$1.handleExecutionException(Main.java:133)
    at picocli.CommandLine.parseWithHandlers(CommandLine.java:1157)
    at com.intuit.karate.netty.Main.main(Main.java:139)

Любой способ избежать этого и сбоя в karate-config.js приводит к тому, что запуск останавливается все вместе?

1 Ответ

2 голосов
/ 15 апреля 2019

Как известно, karate-config.js выполняется перед каждым сценарием. Проблема с этим считается "катастрофической". Каратэ предназначено для того, чтобы попытаться перейти к следующему сценарию.

Не стесняйтесь открывать запрос функции и даже вносить исправления - но я предполагаю, что из-за концепции callSingle() было бы трудно иметь логику для выполнения того, что вы запрашиваете.

Мое личное мнение таково, что такое поведение приемлемо, если karate-config.js дает сбой - вы должны исправить это довольно быстро. Вы всегда можете использовать модуль запуска JUnit или интеграцию IDE, чтобы работать над одной функцией и решить ее, прежде чем переходить ко всему набору.

...