【问题标题】:Configuring proxy in karate-config.js get parse error在 karate-config.js 中配置代理得到解析错误
【发布时间】:2019-06-12 16:43:16
【问题描述】:

我有我们测试的代理设置,例如,

function() {                                                                                                                                                                                                                                            

    var config = { // base config JSON                                                                                                                                                                                                                  
        sslConfig: true,                                                                                                                                                                                                                                
        apiUrl: 'https://my-api.com',                                                                                                                                                                                                                   
        api2Url: 'https://my-api2.com',                                                                                                                                                                                                                 
        proxy:                                                                                                                                                                                                                                          
        {                                                                                                                                                                                                                                               
            uri: 'http://my-proxy.com:3128',
            nonProxyHosts:                                                                                                                                                                                                                              
            [                                                                                                                                                                                                                                           
                'my-api2.com',                                                                                                                                                                                                                          
            ]                                                                                                                                                                                                             
        }                                                                                                                                                                                                                                               
    };                                                                                                                                                                                                                                                  

    karate.configure('connectTimeout', 10001);                                                                                                                                                                                                          
    karate.configure('readTimeout', 10000);                                                                                                                                                                                                             
    karate.configure('proxy', config.proxy);                                                                                                                                                                                                            
    return config;                                                                                                                                                                                                                                      
}

它在 0.9.2 中运行良好,升级到 0.9.3 后,我在下面收到解析错误消息并挂在那里

    13:47:45.639 | [ForkJoinPool-1-worker-1] | ERROR 

    failed function body: function() {

          var config = { // base config JSON
              sslConfig: true,
              apiUrl: 'https://my-api.com',
              api2Url: 'https://my-api2.com',
              proxy:
              {
                  uri: 'http://my-proxy.com:3128',
                  nonProxyHosts:
                  [
                      'my-api2.com',
                  ]
              }
          };

          karate.configure('connectTimeout', 10001);
          karate.configure('readTimeout', 10000);
          karate.configure('proxy', config.proxy);
          return config;
      }

    13:47:45.646 | [ForkJoinPool-1-worker-1] | ERROR 

    evaluation of 'karate-config.js' failed: javascript function call failed: net.minidev.json.JSONArray cannot be cast to jdk.nashorn.api.scripting.ScriptObjectMirror

我尝试删除密钥nonProxyHosts,它再次起作用。谁能建议这个问题的解决方案?

【问题讨论】:

    标签: karate


    【解决方案1】:

    是的,这是 0.9.3 中引入的错误 - 我们在此处打开了一个票证并已修复(在 develop 分支中)https://github.com/intuit/karate/issues/802

    如果您可以build this from source 并确认它适合您,我们可以加快发布补丁版本。

    【讨论】:

    • 是的,我从源代码构建并确认它可以工作,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2023-01-30
    • 2020-10-18
    相关资源
    最近更新 更多