【发布时间】:2011-07-17 19:07:46
【问题描述】:
通过 IntelliJ IDEA 10 运行一些集成测试并从命令行使用 Ant 时,我遇到了不同的行为。具体来说,调用单例的测试通过 Ant 失败并通过 IDEA 成功。我知道使用单例的缺点,但这是我继承的代码,并希望在删除它们之前创建测试:)
我已验证两者都使用相同版本的 JUnit (4.8.1)。
这是 Ant build.xml 文件中的一个 sn-p:
<junit printsummary="yes"
fork="yes"
forkmode="perTest"
haltonfailure="no">
<classpath refid="classpath.test"/>
<formatter type="xml"/>
<batchtest todir="${report.home}/tmp">
<fileset dir="${test.home}">
<include name="**/*Test.java"/>
<exclude name="**/*TransactionalTests.java"/>
</fileset>
</batchtest>
</junit>
由于我在 IDEA 中找不到有关 JUnit 默认设置的文档,因此在运行测试时我无法确定它们是否/如何分叉等。
非常感谢任何有关通过 Ant 和 IntelliJ 获得相同行为的建议。
【问题讨论】:
-
测试是什么样的?他们是使用
@Before来初始化东西,还是自初始化字段? -
测试是否以相同的顺序运行?我在 Maven 和 Eclipse 中运行测试时遇到了问题,其中测试以不同的顺序运行。这导致 Singleton 对象在两个运行环境中的状态不同。
-
下面是一个遇到此行为的测试示例:gist.github.com/875322
标签: ant junit intellij-idea