2

我的一个团队成员最近为我们的一些开发代码库设置了一些 Hudson 持续集成构建。它使用以简单方式配置的内置 ant 集成。

虽然它非常有用并且我强烈推荐它,但我想知道如何获得更简洁/信息丰富/有用的电子邮件,而不仅仅是 ant 构建日志的尾部。

例如,不要这样:

> [...truncated 36530 lines...]
>     [junit] Tests run: 32, Failures: 0, Errors: 0, Time elapsed: 0.002 sec
... (hundred of lines omitted) ...
>     [junit] Tests run: 10, Failures: 0, Errors: 0, Time elapsed: 0.001 sec
>     [junit] Tests FAILED
>
> BUILD FAILED

我假设我可以跳过内置的 ant 支持并通过 grep 脚本发送构建日志,但我希望有一个更集成或更优雅的选项。

4

1 回答 1

1

我不知道你是否已经这样做了,但我认为下面的 ant 测试任务片段可以帮助你

<target name="test" depends="test.compile" description="runs junit tests">

        <taskdef name="junit"
            classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
            classpath="${script.dir}/tools/ant-junit.jar"/>

        <junit haltonfailure="no" printsummary="on" fork="yes">
            <classpath>
                 <path refid="web.classpath.compile"/>
                 <pathelement location="${test.build.dir.classes}"/>
                 <pathelement location="${web.build.dir.classes}"/>
            </classpath>
            <formatter type="brief" usefile="false"/>
            <formatter type="xml"/>
            <batchtest todir="${script.dir}/test-results">
                <fileset dir="${test.build.dir.src}"
                        includes="**/*Test.java"/>
            </batchtest>
        </junit>
    </target>

使用此配置,您将创建一个由“org.apache.tools.ant.taskdefs.optional.junit.JUnitTask”实现的“junit”任务,该任务可以位于 ant-junit.jar 包中。

之后,直接调用目标并设置一个 xml 格式化程序。

我们也在使用 Hudson,它只是发送最近构建失败的 URL,并且从那里,我们可以使用 AssertionFailedError 的跟踪访问由先前描述的任务生成的测试结果。

希望能帮助到你。

卡洛斯

于 2008-11-26T09:21:19.640 回答