空手道选手->空手道罐子:命令行参数设置问题

问题描述

我正在使用Visual Studio代码,并且已安装Karate Runner插件。将karate-config.js与独立jar(karate.jar)结合使用。我尝试在VS代码中为空手道选手->空手道jar的空手道选手设置中进行配置:命令行参数为“ java -Dkarate.config.dir = test / resources / -cp karate.jar com.intuit.karate.Main”但会引发类似

的异常

执行任务:java -Dkarate.config.dir = test / resources / -cp karate.jar com.intuit.karate.Main“ d:\ GitHub \ KarateTestFramework \ test \ features \ script \ all_users.feature:9”

错误:无法找到或加载主类.config.dir = test.resources。 终端进程“ C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -Command java -Dkarate.config.dir = test / resources / -cp karate.jar com.intuit.karate.Main“ d:\ GitHub \ KarateTestFramework \ test \ features \ script \ all_users.feature:9“”以退出代码1终止。

终端将被任务重用,按任意键将其关闭

此外,我尝试了-Dkarate.config.dir = D:/ GitHub / KarateTestFramework / test / resources的完整路径,但也没有用。

请指导我解决此问题。

解决方法

@ChandramohanRamabadran,我试图在系统上复制该问题。我相信这不是错误!

之所以发生这种情况,是因为您的VisualStudio使用的是PowerShell,而不是CMD。我相信您可能已经错过了进入change the default shell of VisualStudio after installing Karate的步骤。尝试updating the default shell from PowerShell to CMD;那你应该很好。

但是,如果仍然要使用PowerShell,请更新命令

java -Dkarate.config.dir=test/resources/ -cp karate.jar com.intuit.karate.Main

java `-Dkarate.config.dir`=test/resources/ -cp karate.jar com.intuit.karate.Main

有关此问题的更多背景信息: PowerShell具有更标准的规则来解析与CMD不同的系统属性参数。在PowerShell命令中,参数名称始终以连字符开头。连字符告诉PowerShell命令中的项目是参数名称。

在这里,我们将参数传递为-Dkarate.config.dir,PowerShell将参数名称标签视为-Dkarate,而不是-Dkarate.config.dir;因此是错误。

,

这是一个错误。感谢您举报:https://github.com/intuit/karate/issues/1330

目前,请找到一种解决方法。空手道将在当前目录或类路径中寻找karate-config.js。因此,如果您将命令更改为类似这样的内容(请尝试使用变体),它应该可以工作

-cp 'karate.jar;test/resources/'
,

我已将首选终端外壳从Powershell更改为VS代码的默认命令,并遵循以下列出的步骤

  1. 按Ctrl + Shift + P显示所有命令。
  2. 在显示的文本框中键入shell以过滤列表。
  3. 选择终端:选择默认外壳。
  4. 系统将提示您选择首选的终端外壳,您可以稍后在设置中进行更改,或按照与现在相同的步骤进行操作。

我将空手道选手->空手道jar:命令行Args设置更改为java -Dkarate.config.dir = resources / -cp karate.jar com.intuit.karate.Main

现在可以正常工作了。