Linux 環境下載allure-commandline環境相關問題、配置環境變量問題


問題描述:

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']] } }

 

這樣問題就解決了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM