首页 > 解决方案 > Jenkins从远程测试PC发布junit xml

问题描述

当我使用 pytest 在与 Jenkins 相同的盒子上运行测试时,我可以发布 junit xml 报告。它工作得很好。

现在我在远程测试电脑上运行 pytest 启动 Jenkins。它运行一系列 python 测试并在远程测试 PC 上生成 junit xml 报告。我卡住的地方是如何将这些junit xml报告推回詹金斯?

测试 PC 是 Windows 10。我目前通过 powershell 命令远程启动测试以启动 pytest。我在远程测试电脑上没有 Jenkins 从代理。

标签: jenkinsjunitpytest

解决方案


这是一个使用 stash / unstash 将文件从一个节点复制到另一个节点的示例。文件 'foo.jar' 在源系统上的 '/tmp' 中,最终将在目标系统上的 '/tmp' 中。

stage ('Stash file on node 1') {
    node ('node1') {
        dir ('/tmp') {
            stash name: 'TestTransfer', includes: 'junit.xml'
        }
    }
}

stage ('Unstash file on node 2') {
    node ('node2') {
        dir ('/tmp') {
            unstash 'TestTransfer'
        }
    }
}

这是一个将文件从节点 1 复制到主节点,然后将其归档为工件的示例,以便您可以在作业完成后查看或从 GUI 下载它

stage ('Stash file on node 1') {
    node ('node1') {
        dir ('/tmp') {
            stash name: 'TestTransfer', includes: 'junit.xml'
        }
    }
}

stage ('Unstash file on master') {
    node () {
        // By default, goes to the workspace.
        // If you want to go to a directory, wrap in 'dir'
        unstash 'TestTransfer'
        archiveArtifacts artifacts: '*'
    }
}

推荐阅读