Email 在管道中使用多个脚本块时Robot framework的电子邮件模板出错

Email 在管道中使用多个脚本块时Robot framework的电子邮件模板出错,email,templates,robotframework,pipeline,Email,Templates,Robotframework,Pipeline,我在Windows 10中使用Jenkins,管道脚本运行机器人脚本,然后发送一封包含结果的电子邮件。 我使用的模板是 我曾尝试在Jenkins文件中使用不同的设置(包括使用脚本版本),但基本上这是可行的: pipeline { agent any stages { stage('Build') { steps { script{

我在Windows 10中使用Jenkins,管道脚本运行机器人脚本,然后发送一封包含结果的电子邮件。 我使用的模板是

我曾尝试在Jenkins文件中使用不同的设置(包括使用脚本版本),但基本上这是可行的:

    pipeline {
    agent any

    stages {
        stage('Build') {
            steps {              
                script{
                    bat "robot -v store:${storeID} -v testType:${testType} -v site:${pageID} -v productName: previews.robot"
                }
            }
        }
    }
    post {
        always{
            script{
                    step(
                        [
                            $class              : 'RobotPublisher',
                            outputPath          : '.',
                            outputFileName      : 'output.xml',
                            reportFileName      : 'report.html',
                            logFileName         : 'log.html',
                            disableArchiveOutput: false,
                            passThreshold       : 50,
                            unstableThreshold   : 40,
                            otherFiles          : "*.png",
                        ]
                    )
                    def emailBody = '''${SCRIPT, template="robot.template"}'''
                    emailext body: emailBody,
                    subject: "[JENKINS BUILD]",
                    recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']]
            }
            archiveArtifacts '*.html, *.xml, *.png'
        }   
    }
}
但是,如果我添加另一个带有脚本的阶段,例如更改构建名称,那么我将得到一个模板错误。 生成错误的管道:

pipeline {
    agent any

    stages {
        stage('Init'){
            steps{
                script{
                    def name = ""
                    switch(testType){
                        case "newProduct":
                            def tmpProduct = pageID.split("/")
                            productName = tmpProduct[tmpProduct.size()-1]
                            name= storeID+": New Product ("+productName+")"
                        break
                        case "newHomepage":
                            name = storeID+": New Homepage"
                        break
                        case "newBlog":
                            name = storeID+": New Blog Post"
                        break
                        case "cosmetics":
                            name = storeID+": UI Changes"
                        break
                        default:
                            name = "Test type empty"
                        break
                    }
                    currentBuild.displayName = name
                }
            }
        }
        stage('Build') {
            steps {
                script{
                    bat "robot -v store:${storeID} -v testType:${testType} -v site:${pageID} -v productName: previews.robot"
                }
            }
        }
    }
    post {
        always{
            script{
                    step(
                        [
                            $class              : 'RobotPublisher',
                            outputPath          : '.',
                            outputFileName      : 'output.xml',
                            reportFileName      : 'report.html',
                            logFileName         : 'log.html',
                            disableArchiveOutput: false,
                            passThreshold       : 50,
                            unstableThreshold   : 40,
                            otherFiles          : "*.png",
                        ]
                    )
                    def emailBody = '''${SCRIPT, template="robot.template"}'''
                    emailext body: emailBody,
                    subject: "[JENKINS BUILD]",
                    recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']]
            }
            archiveArtifacts '*.html, *.xml, *.png'
        }   
    }
}
生成的名称已正确更改,脚本运行到最后没有问题,但在电子邮件和控制台输出中,我可以看到模板错误:

Exception raised during template rendering: Cannot get property 'simpleName' on null object

java.lang.NullPointerException: Cannot get property 'simpleName' on null object
有什么建议吗?我真的很想让管道更丰富,但如果我不能解决这个问题,我会继续使用基本管道