Karate 空手道:JS函数不';测试在docker容器中运行时不工作

Karate 空手道:JS函数不';测试在docker容器中运行时不工作,karate,Karate,我在docker中运行测试时遇到一些问题。我不确定这是空手道还是docker配置 背景如下: Background: * configure report = { showLog: true, showAllSteps: false } * def ts = call read('classpath:utilities/helper-random-data-js.feature@timestamp') * def timestamp = ts.timestamp

我在docker中运行测试时遇到一些问题。我不确定这是空手道还是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
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
JS位于助手随机数据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
  @test1
  Scenario: xxx
    Given url my_url
    And path 'billing/history/' + user_id
    And param startDate = timestamp
    When method get
    Then status 200
当我通过命令行在本地环境上运行测试时,一切都按预期工作

xx - scenario called at line: 4 by tag: @timestamp
xx - [print] 1614103214
xx - [print] Current timestamp 1614103214
当我使用此测试运行docker容器时,问题开始出现:

docker run空手道\u docker mvn测试-DargLine=“-Dkarate.env=stage”-Dtest=E2eRunner-Dkarate.options=“--tags@test1”

结果,由于时间戳不正确,测试失败

  @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文件如下所示:

  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
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版本,则应修复此问题


请在此处查找更多详细信息:

抱歉,我无法诊断太多问题,因此,如果可以,请遵循此过程:-还可以查看新版本是否有用:我更新为0.9.9.RC4,它可以工作:)JS函数可以正常工作,因此解决方案非常简单。太棒了!请不要投票并接受答案