我正在从仅使用Intellij来管理我的构建系统到Intellij / Maven。当我通过@RunWith(KmlParameterizedRunner.class)与我自己的运行器运行我的集成测试“MapSimulationTest”时,Intellij正确处理这种情况,系统属性“user.dir”指定的目录被扫描.kml文件,并且每个文件都经过测试。
问题似乎是Surefire忽略了@RunWith,有什么建议吗?
以下是maven日志显示的内容......
----------------------------------------------- --------测试 -------------------------------------------------- -----跑步 com.tqicorp.guru.MapSimulationTest 测试运行:0,失败:0,错误:0, 跳过:0,经过的时间:0.061秒
答案 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注释。