【发布时间】:2016-09-08 09:51:10
【问题描述】:
动机:目前我有多个用 Java 编写的测试套件,可以由 Ant 构建和运行。我在笔记本电脑上开发和完善测试,它们每晚都在云中的远程机器上运行。有时,由于各种原因,某些特定测试在本地通过但在云中永久失败。然后我需要调试。我现在是怎么做的:我将@Ignore注释添加到所有测试中,除了我需要调试的测试,提交我的代码,然后远程连接到云中的机器以查看我的笔记本电脑上发生了什么,然后运行该套件云端。这样,套件中只有一个测试执行,并且通过 RDP 我可以看到失败的地方。这是我可以忍受的,但是添加这些 @Ignore 注释然后在调试时将它们从所有测试中删除,这让我很困扰。如果 Ant 中有一种方法可以告诉目标不要运行执行所有测试但只执行一个特定测试的特定类,那就太好了。
一个特定套件的 Ant 目标示例:
<target name="ADMPSmokeTest">
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes" printsummary="withOutAndErr" showoutput="true">
<formatter type="xml"/>
<test name="me.enreach.automation.sanoma.SmokeTest" todir="${junit.output.dir}"/>
<classpath refid="QARegression.classpath"/>
</junit>
</target>
如您所见,<test name="me.enreach.automation.sanoma.SmokeTest" todir="${junit.output.dir}"/> 表示它需要运行 SmokeTest 类中的所有测试。
我可以以某种方式告诉它只运行让我们说 SmokeTest.createCampaign 吗?
请只建议真正可以节省时间的解决方案,不要说“在需要调试时创建单独的测试套件”等。
【问题讨论】: