【发布时间】:2011-12-05 13:26:30
【问题描述】:
我想知道是否有人知道如何在同一次运行中重新运行失败的 Junit 测试。例如,测试 1-5 运行并全部通过,然后当测试 6 运行时,它第一次失败。然后它会自动再次运行第二次,然后继续进行测试 7。我正在使用一个运行我所有测试的 ant 脚本。 如果有帮助的话,测试将在 Hudson 盒子上运行。我读到了能够选择失败的测试并将它们放入一个新文件中,在第二次运行套装时运行它们,但这并不是我真正想要的。
任何正确方向的帮助或指示都会有所帮助。谢谢。
<!-- ============================= -->
<!-- target: test-regression-all -->
<!-- ============================= -->
<!--
<target name="test-regression-all" description="Runs all tests tagged as regression" depends="compile">
<mkdir dir="${target.reports.dir}"/>
<junit printsummary="yes" haltonerror="no" haltonfailure="no" fork="yes"
failureproperty="junit.failure" errorproperty="junit.error" showoutput="true">
<formatter type="xml"/>
<classpath>
<pathelement location="${target.build.classes.dir}"/>
<path refid="classpath"/>
</classpath>
<batchtest todir="${target.reports.dir}">
<fileset dir="${src.dir}">
<include name="emailMarketing/AssetLibrary/*.java" />
<include name="emailMarketing/attributes/*.java" />
<include name="emailMarketing/contacts/*.java" />
<include name="emailMarketing/DomainKeys/*.java" />
<include name="emailMarketing/lists/*.java" />
<include name="emailMarketing/messages/*.java" />
<include name="emailMarketing/Segments/*.java" />
<include name="emailMarketing/UploadContact/*.java" />
<exclude name="emailMarketing/lists/ListArchive.java"/>
<exclude name="emailMarketing/messages/MessageCreation.java" />
</fileset>
</batchtest>
<jvmarg value="-Duser=${user}"/>
<jvmarg value="-Dpw=${pw}"/>
<jvmarg value="-Dbrowser=${browser}"/>
<jvmarg value="-Dserver=${server}"/>
<jvmarg value="-Dopen=${open}"/>
<jvmarg value="-DtestType=regression"/>
</junit>
<junitreport todir="${target.reports.dir}">
<fileset dir="${target.reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report todir="${target.reports.dir}"/>
</junitreport>
<fail if="junit.failure" message="Test(s) failed. See reports!"/>
<fail if="junit.error" message="Test(s) errored. See reports!"/>
</target>
【问题讨论】:
-
但是为什么呢?如果它第一次失败,我希望它在所有后续运行中都会失败。如果它的输出随机变化,您可能需要进行更具确定性的测试。
-
您可以按照*.com/questions/8295100/…中的描述创建规则
-
@RobHruska 我只想重新运行失败,因为我的日志有调试消息,如果 (1) 它更小 (2) 只包含相关信息会更好。