karate.env 无法按空手道命令行的预期工作

问题描述 投票:0回答:2

下面是我的config.js

function fn() {
  var env = karate.env; // get java system property 'karate.env'
  karate.log('karate.env system property was:', karate.env);
  if (!env) {
    env = 'dev'; // a custom 'intelligent' default
  }
  var config = { // base config JSON
    tokenId: 'glpat-_JhsWtKDxTDdj8y7MSrT',
    incorrectToken: 'glpat-yTewu9RxV97K6Uj385v',
    baseUrl: 'https://gitlab.com/api/v4',
    sampleProjectId: '39946432'
  };
  if (env == 'ST') {
    // over-ride only those that need to be
    config.baseUrl = 'https://st-host/v1/auth';
  } else if (env == 'e2e') {
    config.baseUrl = 'https://et-host/v1/auth';
  }
  // don't waste time waiting for a connection or if servers don't respond within 5 seconds
  karate.configure('connectTimeout', 5000);
  karate.configure('readTimeout', 5000);
  karate.configure('ssl', true);
  return config;
}

下面的代码工作正常:

如果我用下面的代码修改了我的 Runner 类 -

@BeforeClass
public static void before() {
    System.setProperty("karate.env", "e2e");
}

然后奔跑 -

mvn test -Dtest=TestRunnerE2E

然后我进入 karate.log 为 -

09:13:02.200 [pool-1-thread-1] INFO  com.intuit.karate - karate.env system property was: e2e

以下设置无法正常工作: 但我不想为不同的环境保留不同的运行程序文件。 所以我尝试运行以下命令 -

mvn test -DargLine="-Dkarate.env=e2e"
mvn test -Denv=e2e  

但是在这两种情况下环境设置都不正确 -

09:20:10.799 [pool-1-thread-1] INFO  com.intuit.karate - karate.env system property was: local 

不确定我在这里错过了什么?通过设置 system.setProperty 可以正常工作,但不能直接从命令行设置。

maven 详细信息:

mvn -version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T17:06:16+02:00)
Maven home: C:\Program Files\apache-maven-3.6.2\bin\..
Java version: 1.8.0_342, vendor: Azul Systems, Inc., runtime: C:\Program Files\Zulu\zulu-8\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

致以诚挚的问候,

阿比

maven karate
2个回答
0
投票

不确定您是否找到解决方案。您可以在 mvn 命令中将 karate.env 作为独立参数传递。这是一个例子。

mvn test clean -Dkarate.env=testValFromCmd

0
投票

我正在使用 ./gradlew clean test -Dkarate.env=rnd

上面的命令不起作用,抛出错误 .env not found

© www.soinside.com 2019 - 2024. All rights reserved.