【问题标题】:Karate Runner -> karate jar : Command line args settings issueKarate Runner -> karate jar:命令行参数设置问题
【发布时间】:2020-10-15 01:48:21
【问题描述】:

我正在使用 Visual Studio 代码并安装了 Karate Runner 插件。将 karate-config.js 与独立 jar (karate.jar) 一起使用。我试图在 VS 代码中为 Karate Runner -> karate 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 的完整路径,但也没有用。

请指导我解决此问题。

【问题讨论】:

    标签: jar command line karate args


    【解决方案1】:

    @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;因此错误。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我已经尝试了上述命令和不同的变体,但没有奏效。解决此错误后,请更新我。
      • @ChandramohanRamabadran 我建议你花一些时间帮助我们解决这个问题,这是一个开源项目
      • 我已将首选终端 shell 从 Powershell 更改为命令作为 VS 代码的默认值,并按照下面列出的步骤 1) 按 Ctrl + Shift + P 显示所有命令。 2) 在显示的文本框中键入 shell 以过滤列表。 3)选择终端:选择默认外壳。 4) 系统将提示您选择您喜欢的终端外壳,您可以稍后在设置中更改此设置,或按照与我们现在相同的过程进行操作。我已将 karate runner->karate jar:Command Line Args 设置更改为 java -Dkarate.config.dir=resources/ -cp karate.jar com.intuit.karate.Main
      【解决方案3】:

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

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

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

      现在它工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多