空手道:当测试在 docker 容器中运行时,JS 函数不起作用

Karate: JS function doesn't work when test runs in docker container

我在 docker 中的 运行ning 测试遇到了一些问题。我不确定这是空手道还是 docker 配置。

背景是这样的:

  Background:
    * configure report = { showLog: true, showAllSteps: false }
    * def ts = call read('classpath:utilities/helper-random-data-js.feature@timestamp')
    * def timestamp = ts.timestamp
    * print "Current timestamp " + timestamp

JS 位于 helper-random-data-js.feature@timestamp

  @timestamp
  Scenario: Generate timestamp
    * def getDate =
    """
    function() {
    var unix = Math.round(new Date().getTime()/1000)
    return unix;
    }
    """
    * def timestamp = getDate()
    * print timestamp

当我通过命令行运行在本地环境上进行测试时,一切都按预期工作

xx - scenario called at line: 4 by tag: @timestamp
xx - [print] 1614103214
xx - [print] Current timestamp 1614103214

当我运行正在docker容器中进行此测试时,问题开始了:

docker 运行 karate_docker mvn test -DargLine="-Dkarate.env=stage" -Dtest=E2eRunner -Dkarate.options="--tags @test1

xx - scenario called at line: 4 by tag: @timestamp
xx - [print] 1.614103807E9
xx - [print] Current timestamp 1614103807

因此,测试失败,因为时间戳不正确

  @test1
  Scenario: xxx
    Given url my_url
    And path 'billing/history/' + user_id
    And param startDate = timestamp
    When method get
    Then status 200

结果: https:///xx/billing/history/0000?startDate=1.614103807E9

Docker 文件如下所示:

FROM maven:3-jdk-8-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY settings.xml /usr/share/maven/ref/
COPY pom.xml /usr/src/app
COPY ./src/test/java /usr/src/app/src/test/java


RUN mvn -B -f /usr/src/app/pom.xml -s /usr/share/maven/ref/settings-docker.xml prepare-package -DskipTests

感谢任何帮助。

如果您升级到 1.0 系列/RC 版本,这应该会被修复。

请在此处找到更多详细信息:https://github.com/intuit/karate/wiki/1.0-upgrade-guide