MvG*_*MvG 0 java ant junit ivy junit4
我有一个基于ant和ivy的项目,并且我还使用ivy来加载依赖项。由于某些原因,使用ant 1.9时,这些项目之一已开始报告一个奇怪的失败:
junit.framework.AssertionFailedError: No tests found in name.of.my.Clazz
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我在类中使用JUnit4 @Test批注来批注测试方法,因此应该找到很多测试用例。
简短的回答:确保你依靠蚂蚁junit4不仅蚂蚁junit的。
我必须查看源以解决此问题。这里的核心问题是<junit>ant任务将尝试使用JUnit3语义来运行测试用例,并且没有找到相应的测试用例。它不使用JUnit4模式的原因是因为ant的JUnit4支持是Maven或Ivy的独立软件包,即org.apache.ant#ant-junit4,它依赖于org.apache.ant#ant-junit但提供了其他课程。特别是,如果没有该程序包,JUnitTestRunner将无法加载CustomJUnit4TestAdapterCache,因此会退回到JUnit3样式。至少因为这个提交。
关于这种错误消息,还有其他一些 问题,但是它们早于我提到的提交,因此我想它们必须有不同的原因。答案似乎支持这种观点。这就是为什么我提出自己的问题和答案。