@RunWith导致Maven无法使用我自己的跑步者运行Test

时间:2010-04-27 00:18:15

标签: java maven-2 junit surefire

我正在从仅使用Intellij来管理我的构建系统到Intellij / Maven。当我通过@RunWith(KmlParameterizedRunner.class)与我自己的运行器运行我的集成测试“MapSimulationTest”时,Intellij正确处理这种情况,系统属性“user.dir”指定的目录被扫描.kml文件,并且每个文件都经过测试。

问题似乎是Surefire忽略了@RunWith,有什么建议吗?

以下是maven日志显示的内容......

  

----------------------------------------------- --------测试   -------------------------------------------------- -----跑步   com.tqicorp.guru.MapSimulationTest   测试运行:0,失败:0,错误:0,   跳过:0,经过的时间:0.061秒

4 个答案:

答案 0 :(得分:2)

我正在使用surefire和@RunWith与Spring测试运行器,并且它与maven 2.2.1一起正常工作。

要追踪问题,您可以尝试使用@Test注释创建简单的Junit测试,而不是旧样式的testXXX方法。运行“mvn test”并查看您的测试是否正在执行。如果是,那将排除你路径中任何旧junit的可能性。如果它没有被执行,则运行“mvn site”,并搜索junit的依赖关系报告,并检查版本。令人惊讶的是,不受欢迎的版本如何容易进入!

答案 1 :(得分:1)

您可能已经在这样做了,但如果您的maven依赖项使用的是旧的junit版本(3.x)而不是junit 4.x,而这些注释得到遵守,则会发生这种情况。 检查你的pom.xml以查看正确的junit版本是否为articfact

答案 2 :(得分:1)

尝试验证您使用的是最新版本的maven-surefire-plugin;我已经被我的 surefire uasge的bug弄得一团糟,直到我重新定义了这些错误已在新版本的插件中得到修复,我只需要更新。

答案 3 :(得分:1)

如果您有TestNG依赖项,则可能会发生这种情况。删除依赖项,Maven将在您的类中搜索@ org.junit.Test注释,如果出现TestNG依赖项,则Maven搜索@ org.testng.annotations.Test注释。