当前位置: 首页 > 面试题库 >

我将如何为适用于Jenkins / Hudson的常规测试生成JUnit测试报告?

范鸿
2023-03-14
问题内容

我已经在groovy中编写了几个XMLUnit测试(适合JUnit框架),并且按照groovy
doco
在命令行上轻松地执行了它们,但是我不太明白我还需要做什么。产生由詹金斯/哈德森(或其他)需要的XML输出,以显示合格/不合格结果(象此)和误差等(等的详细报告此)。(向图片所有者致歉)

目前,我的启动脚本是这样的:

def allSuite = new TestSuite('The XSL Tests')

//looking in package xsltests.rail.*
allSuite.addTest(AllTestSuite.suite("xsltests/rail", "*Tests.groovy"))

junit.textui.TestRunner.run(allSuite)

这将产生如下内容:

Running all XSL Tests...
....
Time: 4.141

OK (4 tests)

如何使它创建适合Jenkins / Hudson读取的JUnit测试报告xml文件?

我是否需要使用其他JUnit运行器启动测试?

我已经看到了这个答案,但想避免不得不编写自己的测试报告输出。


问题答案:

经过一番黑客攻击后,我接受了Eric Wendelin的建议,并选择了Gradle。

为此,我已将groovy单元测试移至必需的目录结构src / test / groovy /中,并将支持资源(输入和预期的输出XML文件)移至/ src /
test / resources /目录中。

所有必需的库都已在build.gradle文件中配置,如此处(全文)所述:

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'

    groovy module('org.codehaus.groovy:groovy:1.8.2') {
        dependency('asm:asm:3.3.1')
        dependency('antlr:antlr:2.7.7')
        dependency('xmlunit:xmlunit:1.3')
        dependency('xalan:serializer:2.7.1')
        dependency('xalan:xalan:2.7.1')
        dependency('org.bluestemsoftware.open.maven.tparty:xerces-impl:2.9.0')
        dependency('xml-apis:xml-apis:2.0.2')
    }
}

test {
    jvmArgs '-Xms64m', '-Xmx512m', '-XX:MaxPermSize=128m'

    testLogging.showStandardStreams = true //not sure about this one, was in official user guide

    outputs.upToDateWhen { false } //makes it run every time even when Gradle thinks it is "Up-To-Date"
}

这将应用Groovy插件,设置为使用maven来获取指定的依赖项,然后向内置的“ test”任务中添加一些额外的值。

最后一行是使Gradle每次都运行我所有测试的过程,而不仅仅是它认为是新的/更改的那些,这使Jenkins表现出色。

我还创建了gradle.properties文件来通过公司代理/防火墙等:

systemProp.http.proxyHost=10.xxx.xxx.xxx
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=passwd

这样,我在Jenkins中创建了一个“自由式”项目,该项目会定期轮询我们的Mercurial存储库,并且只要有人向存储库提交更新的XSL,就将运行所有测试。

我的一个既定目标是能够产生标准詹金斯/哈德森合格/不合格图形和JUnit报告,这是成功的:通过/失败与JUnit的报告。

我希望这可以帮助其他有类似要求的人。



 类似资料:
  • 我正试图利用Jenkins中的“发布JUnit测试结果报告”,但无法让它为我的android测试项目工作。我在Jenkins的android测试项目的设置基于以下指南:https://wiki.jenkins-ci.org/display/Jenkins/building+an+android+app+和+test+project 我希望有人能发布一个简单的逐步指南,说明如何从测试运行中获得JUn

  • 我的build.gradle是这样配置的: 下面是一个简单的测试: 当我执行测试时,我在控制台中看到了这一点: 但测试报告中没有任何内容: 我做错了什么?如何将JUnit 5结果集成到测试报告窗口中? 我正在使用Intellij 2016.2

  • 问题内容: 我正在对项目上的纯Java文件运行纯JUnit4 Java测试,但是如果不手动将其公开,我将找不到一种清晰使用@VisibleForTesting的方法。 例如: 方法必须是使其对测试“公开”,但是在那种情况下,注释没有意义吗?如果批注什么也不做,为什么不只使用注释呢? 问题答案: 标签本身可以帮助短绒棉子识别不需要的访问。 为了降低使用风险直接,添加此方法是在 科特林 或在 Java

  • 我使用JUnit实现了一些单元和集成测试,如下图所示(这些测试都在同一个类中) 我正试图在詹金斯建立一个管道,为此我在gradle中添加了这个任务。生成(没有筛选器,因为我想运行所有测试) 在我的Jenkins管道中,我添加了这个阶段“测试”。我需要在后台添加什么来运行测试?

  • 昨天,我编写并运行了一个Katalon测试套件,今天,我试图将Katalon与Jenkins集成。我成功地安装了Jenkins,根据这些说明为Katalon测试创建了一个新的工作,但是当我开始构建它时,我得到了失败的构建。 特别是,这是我不断收到的错误消息: 我继续将文件夹结构从我指定的项目目录复制到Jenkins工作区。经过后来的检查,我发现,当Jenkins运行Katalon测试时,文件实际上

  • 我有一个基于以下内容的应用程序: Spring框架5.0.4。释放 Gradle 4.7-通过配置的多模块项目 JUnit Gradle with JUnit的配置位于根模块中的文件中: 通过Jenkins执行: 等级:thymeleaf-02-基础设施:测试-并行 通过发布JUnit测试结果报告,将其配置为thymeleaf-02-infrastructure/build/test result