空手道:当测试在 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
我在 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