我正在使用Jenkins Pipeline工作来构建和运行单元测试,我的所有阶段都用groovy脚本编写,我在生成黄瓜报告时遇到异常:
[CucumberReport] Preparing Cucumber Reports
[CucumberReport] Copied 0 json files from workspace "/var/opt/jenkins/data/workspace/myJenkinsJob/${pwd()}/target/cucumber-html-report" to reports directory "/var/opt/jenkins/data/jobs/myJenkinsJob/builds/13/cucumber-html-reports/.cache"
java.lang.IllegalStateException: basedir /myJenkinsJOb/builds/13/cucumber-html-reports/.cache does not exist
at org.apache.tools.ant.DirectoryScanner.scan(DirectoryScanner.java:879)
at net.masterthought.jenkins.CucumberReportPublisher.findJsonFiles(CucumberReportPublisher.java:191)
at net.masterthought.jenkins.CucumberReportPublisher.generateReport(CucumberReportPublisher.java:139)
at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:108)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:69)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:59)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52)
at hudson.security.ACL.impersonate(ACL.java:213)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
请在下面找到我的DSL脚本:
stage "Publish Reports"
echo "***** Publish Reports *****"
def ReportPath = "${pwd()}/target/cucumber-html-report"
def JSONPath = "${pwd()}/target/cucumber-json-report.json"
step([$class: 'CucumberReportPublisher',
jsonReportDirectory: '${ReportPath}',
fileIncludePattern: '${JSONPath}'])
我是DSL脚本的新手,有人可以帮助我在这里做错了为什么黄瓜报告没有在这里生成。
提前感谢您的帮助!
谢谢!
注意:我们正在使用最新的黄瓜报告版本
答案 0 :(得分:0)
stage "Publish Reports"
echo "***** Publish Reports *****"
def ReportPath = "${pwd()}/target/cucumber-html-report"
def JSONPath = "${pwd()}/target/cucumber-reports"
steps.step([$class: 'CucumberReportPublisher',
jsonReportDirectory: '${JSONPath}',
fileIncludePattern: '*.json'
因此,您必须在'jsonReportDirectory'中提供json根路径,文件模式应为'.json'
'CucumberReportPublisher'类本身会查找jsonReportDirectory中存在的所有.json文件