带有常春藤的ant 1.9中的junit任务因junit.framework而失败.AssertionFailedError:未找到任何测试

时间:2014-11-26 19:15:17

标签: java ant junit junit4 ivy

我有一个基于ant和常春藤的项目,我也使用常春藤来加载依赖项。出于某些原因,当使用ant 1.9时,其中一个项目已经开始报告一个奇怪的失败:

junit.framework.AssertionFailedError: No tests found in name.of.my.Clazz

这很奇怪,因为我在我的类中使用JUnit4 @Test注释注释了测试方法,所以应该找到大量的测试用例。

1 个答案:

答案 0 :(得分:5)

简短回答:确保您依赖 ant-junit4 ,而不仅仅是 ant-junit

我不得不看看这些消息来源。这里的核心问题是<junit> ant任务将尝试使用JUnit3语义运行测试用例,并且没有根据它找到测试用例。它没有使用JUnit4模式的原因是因为ant的JUnit4支持是Maven或Ivy的独立包,即org.apache.ant#ant-junit4,它依赖于org.apache.ant#ant-junit但提供了额外的类。特别是,如果没有该包,JUnitTestRunner将无法加载CustomJUnit4TestAdapterCache,因此会回退到JUnit3样式。至少从this commit开始。

关于此类错误消息有some other questions,但它们早于我提到的提交,所以我猜他们必须有不同的原因。答案似乎支持这种观点。这就是我提出问题和答案的原因。