【问题标题】:When karate-config.js fails it prints error for each feature当 karate-config.js 失败时,它会为每个功能打印错误
【发布时间】:2019-04-15 15:25:19
【问题描述】:

空手道网版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 个场景的功能文件和包含 104 行的 karate-config.js,您可以想象这会很快变坏。

所以 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 上失败导致 run 一起停止?

【问题讨论】:

    标签: karate


    【解决方案1】:

    如您所知,karate-config.js 在每个场景之前执行。与此相关的问题被认为是“灾难性的”。空手道旨在尝试进入下一个场景。

    请随意打开功能请求,甚至提供修复 - 但我的猜测是因为 callSingle() 的概念,很难有适当的逻辑来执行您的请求。

    我个人认为这种行为是可以接受的,如果 karate-config.js 失败 - 你必须尽快修复它。在继续使用整个套件之前,您始终可以使用 JUnit 运行器或 IDE 集成来处理一个功能并解决此问题。

    【讨论】:

    • Y 我有播种机制,可能会在 karate-config.js 上失败,唯一的解决方案可能是将其分开,但这将是一种浪费。无论如何,公平点。泰
    • @DusanGligoric 感谢您的耐心和接受答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2023-01-30
    • 2010-12-03
    • 1970-01-01
    相关资源
    最近更新 更多