一尘不染

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

jenkins

我已经在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运行器启动测试?

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


阅读 168

收藏
2020-07-25

共1个答案

一尘不染

经过一番黑客攻击后,我接受了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的报告

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

2020-07-25