簡體   English   中英

karate.callSingle not found.feature 文件在 karate-config.js

[英]karate.callSingle not found .feature file in karate-config.js

我正在使用 karate v0.9.6,它是一個很棒的工具。 我有超過 1000 個場景,每個場景都需要令牌才能工作,所以我在 karate-config.js 中使用 callSingle 來創建和緩存令牌。 我使用獨立的 jar 文件。

我的 karate-config.js 的一部分:

  var auth_cfg = { 
  server: env,
  credentials: karate.properties['credentials']};

  var result = karate.callSingle('classpath:credentials/generate_tokens.feature', auth_cfg);

我正在使用這樣的 .sh 文件:

rm -rf target &&
  java -Xmx2048m \
    -Dlogback.configurationFile=cfg/logs_debug.xml \
    -jar \
    -Dcredentials=data.json \
    karate-1.0.1.jar -e https://my-server/ \
    --tags ~fixme \
    --tags ~ignore \
    --threads 4 \
   features/services/simple_plan.feature

而且,它在 v.0.9.6 上長時間運行良好。 但是,當我嘗試升級到 v 1.0 或 1.0.1 時,出現錯誤:

org.graalvm.polyglot.PolyglotException: not found: credentials/generate_tokens.feature

我發現了這個問題: https://github.com/intuit/karate/issues/1515

但是示例對我不起作用。 我正在嘗試使用“文件:”和 karate.properties['karate.config.dir'] + '/features/auth/auth.feature'。 總是我得到一個錯誤:

未找到:憑證/generate_tokens.feature

還有誰遇到過這個問題?

正如您在 #1515 的討論中所看到的 - 這就是為什么我們真的希望更多的人嘗試 RC 版本並向我們提供反饋(我們為此花了幾個月的時間)而不是等待 1.0。

您的情況似乎是一個極端情況,您正在使用獨立的 JAR 和自定義 shell 腳本。

我的第一個建議是使用-w標志。 這是 1.0 中的一個新參數,可以設置“當前工作目錄”,但它應該在您的情況下正確默認。

第二個建議是為 JVM 設置類路徑。 將此用作參考: https://stackoverflow.com/a/58398958/143475 - 一旦這樣做, classpath:將按您的預期工作。

否則請遵循此過程: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue - 我不得不說,除非你能幫助我們解決這個問題,否則你可能不得不繼續0.9.6 一段時間。 對不起。

Peter Thomas,感謝您的快速響應,我修改 callSingle function。 和:由 callSingle 調用的功能文件 - 將“類路徑:”更改為“文件:”

karate.callSingle('file:credentials/generate_tokens.feature', auth_cfg)

,

# read credentials
* def authdata = read('file:credentials/' + credentials)

現在可以使用了。 之前,當我將 classpath: 更改為 file:i 時,可能犯了一個錯誤。 感謝這么棒的測試框架!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM