我有一个基于ant和常春藤的项目,我也使用常春藤来加载依赖项。出于某些原因,当使用ant 1.9时,其中一个项目已经开始报告一个奇怪的失败:
junit.framework.AssertionFailedError: No tests found in name.of.my.Clazz
这很奇怪,因为我在我的类中使用JUnit4 @Test
注释注释了测试方法,所以应该找到大量的测试用例。
答案 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,但它们早于我提到的提交,所以我猜他们必须有不同的原因。答案似乎支持这种观点。这就是我提出问题和答案的原因。