当前位置: 首页 > 知识库问答 >
问题:

空手道。未找到callSingle。空手道配置中的功能文件。js公司

欧阳高昂
2023-03-14

我正在使用空手道v0.9.6,这是一个很棒的工具。我有一个

我空手道配置的一部分。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时,a给出了一个错误:

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

我发现这个问题:https://github.com/intuit/karate/issues/1515

但这些例子并不适合我。我试着用“文件:”和空手道。属性['karate.config.dir]'/features/auth/auth。“功能”。我总是会出错:

未找到:凭据/生成令牌。特色

还有谁面临过这个问题?

共有2个答案

苏洛城
2023-03-14

彼得·托马斯,谢谢你的快速回复!我修改了callSingle函数,并。callSingle调用的功能文件-将“classpath:”更改为“file:”

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

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

它现在起作用了。以前,当我将classpath改为file时,我可能犯了一个错误。谢谢你这么棒的测试框架!

段干昊然
2023-03-14

正如您在#1515的讨论中看到的那样——这就是为什么我们真的希望更多的人尝试RC版本并给我们反馈(我们为此花费了数月时间)而不是等待1.0。

您的示例似乎是一个边缘示例,您正在使用独立的JAR和自定义shell脚本。

我的第一个建议是使用-w标志。这是1.0中的一个新参数,可以设置“当前工作目录”,但在您的情况下应该正确默认。

第二个建议是为JVM设置类路径。将其用作参考:https://stackoverflow.com/a/58398958/143475-一旦您这样做,类路径:将按您的预期工作。

否则请遵循以下流程:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue-我必须说,除非你能帮助我们解决这个问题,否则你可能需要在0.9.6上保持一段时间。很抱歉

 类似资料:
  • 我正在尝试使用空手道进行e2e测试,并已从最低设置开始。我想在用于测试,但karate报告该文件不是js函数,因此测试无法获取配置: 这是我的: 这是我的测试: 这是测试运行程序:

  • 我的API测试项目的工作,并已纳入空手道这样做。现在,我的要求是创建一个响应endpoint的服务器。所有这些都已完成,但我的要求是访问服务器功能中的空手道配置文件中定义的变量。我不能这样做。 例如:功能:示例服务器 场景:路径匹配('\variablevalue)**methodIs('get')) def响应=默认环境 注意:默认_env是空手道配置中的一个变量。js文件,并保存一些默认值。

  • 空手道标头示例不显示如何访问以外的配置值。当我切换环境(传递作为run命令的一部分)然后被正确设置。 问题是,我想使用这里所示的其他配置值,但是当我运行测试时,它无法访问正确。相反,我得到了这个错误 我的文件和。 (这里类似的问题,使用单独的:https://github.com/intuit/karate/issues/94)

  • 在我们的测试功能(用于API测试)中,我们在后台创建测试用例所需的数据(例如:用户,他们的数据...)。我们希望在不同的模式下使用相同的测试功能。如何在后台设置数据?我的意思是我们如何为我们的测试功能使用“不同的”背景。我们希望运行相同的测试功能: > 在管理或非管理模式下,所以在后台我们需要创建一个用户帐户,然后生成一个访问令牌,然后使用该令牌为该用户添加一些数据;该令牌用于每个场景; 对于注入

  • 我有空手道。js文件: 我用独立的空手道跑步。罐子: 我看到相同的"不是一个js函数或功能文件:读取('file:./karate-config.js ') - [type: NULL, value: null]"错误消息是否显式设置karate.config路径。如果我将karate.config.path值设置为不包含karate-config.js文件的目录, 我主要在linux的windo

  • 我想在/文件中定义特定于环境的属性。因此,我创建了以下: 接下来,我编写了这个: 如https://github.com/intuit/Karate#reading-files所示,函数应该由Karate知道,但是我不确定这是只适用于文件还是也适用于。 不幸的是,上面的都不起作用,因为我得到了这个错误: 我确信该文件存在并且是可读的。 是我做错了什么,还是我的方法不被支持?如果它不受支持,推荐的方