ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux 环境下载allure-commandline环境相关问题、配置环境变量问题

2020-06-17 12:03:18  阅读:860  来源: 互联网

标签:qatools commandline jenkins allure yandex Linux java


问题描述:

jenkins安装在Linux服务器

Jenkins下执行pipeline脚本生成allure报告,报错:

java.io.IOException: Can't find allure commandline <null>
完整报错信息:
java.io.IOException: Can't find allure commandline <null>
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$2.call(AllureCommandlineInstallation.java:63)
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$2.call(AllureCommandlineInstallation.java:58)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation.getMajorVersion(AllureCommandlineInstallation.java:58)
    at ru.yandex.qatools.allure.jenkins.ReportBuilder.build(ReportBuilder.java:52)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:312)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:231)
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
    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:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
View Code

 

问题分析:

既然缺少allure commandline,那就需要安装一个,

要配置allure-commandline ,官网上查一波,执行如下安装命令一直报错

$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update
$ sudo apt-get install allure-commandline

 

查了好久也无果,因此尝试了其他办法,在这里记录一下:

解决办法:

下载allure-commandline的zip包到本地windows机器上,然后再配置临时环境变量。

1.下载,下载allure-commandline 的zip包到本地windows机器上,下载地址:

https://registry.npmjs.org/allure-commandline/-/allure-commandline-2.13.0.tgz

2.上传,将下载的zip包上传到Linux机器上

  使用rz命令j将下载的 allure-commandline上传到Linux服务器上,

    (1)需要注意的是,要记住当前的目录

      (2)allure环境依赖jdk1.8以上版本,如果小于1.8版本,也可以在pipeline脚本内引入临时环境变量

     (3)Linux临时环境变量,定义可以参考:https://www.cnblogs.com/haore147/p/3633116.html

3.解压,unzip allure-comandline-(你上传的allure-commandline文件名)

 

4.再pipeline脚本内设置临时allure环境变量,具体如下:

pipeline{
  agent any
  environment{
       allure_home = '/usr/home/ya/allure-commandline-2.13.0/dist/bin/'
      JAVA_HOME = '/usr/home/ya/openjdk-8'                          //因为allure要求jdk1.8以上,本地是1.7因此这里需要配置下jdk1.8
}
 stages{
     stage(’deploy‘)
         steps{
                 echo '正在部署环境' 
}  
     stage('Testing'){
    steps{
    echo ‘正在执行测试用例’
    pipenv run pytest --alluredir=../results -s -v -p no:warnings
    }
 }

}
  post{
    always{
//设置allur和jdk环境变量 ,环境变量的设置在allure应该还有更好的方法,待研究。
sh''' export PATH="${JAVA_HOME}"/bin:$PATH export PATH="${allure_home}":$PATH java -version allure --version '''

script { allure includeProperties: false,jdk: '', report:'report',results:[[path:'results']] } }

 

这样问题就解决了!

标签:qatools,commandline,jenkins,allure,yandex,Linux,java
来源: https://www.cnblogs.com/lyangyang/p/13151692.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有