Jenkinsfile 中的 Run Robot 无法从 Github 获取正确的 test.robot 文件

问题描述 投票:0回答:1

所以我有一个学校项目,每一步都让我很头疼。它位于 Github 上,通过 Jenkins 作为管道项目运行,并使用分支的 git 参数进行参数化。有 2 个分支,main 和 b1,这是我的 Jenkinsfile

pipeline {
    agent any
    stages { 
        stage('build'){
           steps{
               sh "mvn compile"
           }
        }
        stage('Test') {
            steps{
                sh "mvn test"
            }
            post {
                always {
                    jacoco(
                        execPattern: 'target/*.exec',
                        classPattern: 'target/classes',
                        sourcePattern: 'src/main/java',
                        exclusionPattern: 'src/test*'
                    )
                    junit '**/TEST*.xml'
                }
            }
        }
        stage('Run Robot and Post Test') {
            steps{
                sh script: 'python -m robot C:/Users/ersha/.jenkins/workspace/Pär_Ershag/Selenium/test.robot', returnStatus: true
            }
            post {
                always {
                    robot outputPath: 'C:/Users/ersha/.jenkins/workspace/Pär_Ershag@2', passThreshold: 100.0, unstableThreshold: 70.0, onlyCritical: false
                }
            }
        }
    }
}

我的问题是,无论我选择构建哪个分支,它都将始终使用旧版本的 test.robot ,该版本与步骤 sh 脚本:'python -m robots...' 所指的路径相同。 Main 和 b1 都有不同版本的文件,但都没有运行。尽管在其他行为中有“结帐前清洁”步骤,但还是如此。

我将我的 Jenkinsfile 与其他执行相同项目的人进行了比较,最大的区别是“运行机器人和后期测试”的阶段表述为: bat“机器人他们的测试.机器人路径

由于某种原因,即使我使用 Windows,我也无法使用 bat 来执行我的步骤,因此我必须使用 sh 和 Jenkins 中的脚本才能使其工作。

ps:我对 Jenkins 还很陌生,所以还有很多东西我还不明白。

jenkins testing version-control automated-tests robotframework
1个回答
0
投票

使用硬编码路径大多数时候是个坏主意。

Jenkins 有一个内置变量来引用代理/节点的实际工作空间。在你的例子中我会尝试:

(...)
stage('Run Robot and Post Test') {
            steps{
                sh script: 'cd ${WORKSPACE} && python -m robot Pär_Ershag/Selenium/test.robot', returnStatus: true
            }
            post {
                always {
                    robot outputPath: '${WORKSPACE}/Pär_Ershag@2', passThreshold: 100.0, unstableThreshold: 70.0, onlyCritical: false
                }
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.