Jenkins和JUnit:无法设置XML文件路径

6
这个问题可能听起来很傻,但我在操作了一个小时后仍然没有找到如何在构建后的JUnit任务中配置XML报告路径。 我生成JUnit测试报告(即XML文件)的路径如下:

C:\Program Files\Jenkins\jobs\UPWSP\workspace\up\UPWSP\current\06-Java Unit Testing\junit\TESTS-TestSuites.xml

而使用这个XML的作业其工作区位于以下路径:

C:\Program Files\Jenkins\jobs\UPWSP - Tests JUnit\workspace\

JUnit报告的构建后任务似乎只能接受相对路径,我已经尝试过使用:

../../UPWSP/up/UPWSP/current/06-Java Unit Testing/junit/TESTS-TestSuites.xml

**../../UPWSP/up/UPWSP/current/06-Java Unit Testing/junit/TESTS-TestSuites.xml

它总是告诉我 '..' 不是一个有效的路径,而绝对路径也不起作用。 有任何想法应该如何使用它吗?

6个回答

14
据我所知,JUnit XML文件的路径必须是项目的子目录,而不能位于作业工作区之外。一旦您在工作区内创建了一个目录,例如junit-test,则在测试报告XMLs选项中指定以下内容应该按预期工作:junit-test\TESTS-TestSuites.xml

1
Jenkins可以在$WORKSPACE下到达任何地方 - 不需要子目录。 - Generic Ratzlaugh

6
您可以使用通配符,例如**/target/surefire-reports/*.xml或者在您的情况下使用**/junit/*.xml

3

这只是一个解决方法,而不是真正的答案。我必须使用xcopy命令行将xml复制到作业目录中。我的工作现在能够正常运行,但这不是我期望的工作方式。


1
你需要将 junit 步骤放入 dir 步骤中,如下所示:
pipeline{
  stages{
    stage("Run tests")
      steps{
        echo "Here generate some test_result.xml files in /some/path"
      }
  }
  post {
    success {
      dir('/some/path')
      {
        junit '**/test_result.xml'
      }
    }
}

}


我不知道这个版本是在哪个环境下测试的,但对我来说它不起作用。 - xtofl
2.332.2 - 它可以工作。在使用k8s代理步骤内的常见裸机代理步骤时帮助了我。由于某种原因,k8s代理步骤中的env.WORKSPACE指向了裸机代理的工作空间。 - sintasy

1
尝试将以下内容放入“测试报告XML”字段中(假设您在Windows机器上):
up\UPWSP\current\06-Java Unit Testing\junit\*.xml

我不清楚你所详细描述的“使用XML的工作”部分是什么意思。这与生成Junit报告的工作有什么关系?

报告会生成一个 XML 文件,我会在同一项工作中使用它 :) - nivolas

0
在Windows上,使用资源管理器并转到您的安装目录。类似于C:\ Users \ me \ .jenkins \ workspace \ PetClinic \ target。添加一个新文件夹。返回Jenkins仪表板。如果在后构建操作中看到红色x,请单击它。重新选择选项并添加新路径** / target / newfolder / * .xml。 编辑:从克隆的存储库中找到包含测试的文件夹。使用该文件夹,在我的情况下是surefire-reports。

那艘船已经开走了!我没有环境来测试东西了。这个问题是来自2014年的 :) - nivolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接