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

Karate Runner -> karate jar : Command line args settings issue

我正在使用 Visual Studio 代码并且安装了 Karate Runner 插件。使用带有独立 jar (karate.jar) 的 karate-config.js。我试图在空手道赛跑者的VS代码中配置空手道赛跑者设置 - >空手道罐子:命令行参数为“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 " <

错误:无法找到或加载主 class。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 的完整路径,但也没有用。

请指导我解决这个问题。

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

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

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

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

这是因为您的 VisualStudio 使用的是 PowerShell 而不是 CMD。我相信您可能错过了 change the default shell of VisualStudio after installing Karate. Try 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 不同的 system-properties 参数。在 PowerShell 命令中,参数名称始终以连字符开头。连字符告诉 PowerShell 命令中的项目是参数名称。

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

我已将首选终端 shell 从 Powershell 更改为 VS 代码的默认命令,并按照下面列出的步骤进行操作

  1. 按 Ctrl + Shift + P 显示所有命令。
  2. 在显示的文本框中键入 shell 以筛选列表。
  3. Select 终端:Select 默认 Shell .
  4. 系统会提示您 Select 您的首选终端 shell,您可以稍后在设置中更改此设置,或者按照我们现在所做的相同过程进行操作。

我已经将 karate runner->karate jar:Command Line Args 设置更改为 java -Dkarate.config.dir=resources/ -cp karate.jar com.intuit.karate.Main

现在工作正常。