[英]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.