我正在使用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” << / p>
错误:无法找到或加载主类.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的完整路径,但也没有用。
请指导我解决此问题。
答案 0 :(得分:2)
@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
;因此是错误。
答案 1 :(得分:1)
这是一个错误。感谢您举报:https://github.com/intuit/karate/issues/1330
目前,请找到一种解决方法。空手道将在当前目录或类路径中寻找karate-config.js
。因此,如果您将命令更改为类似这样的内容(请尝试使用变体),它应该可以工作
-cp 'karate.jar;test/resources/'
答案 2 :(得分:1)
我已将首选终端外壳从Powershell更改为VS代码的默认命令,并遵循以下列出的步骤
我将空手道选手->空手道jar:命令行Args设置更改为java -Dkarate.config.dir = resources / -cp karate.jar com.intuit.karate.Main
现在可以正常工作了。