2

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

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

这是Maven日志显示的内容...

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

4

4 回答 4

2

我在Spring测试运行器中使用了 surefire 和 @RunWith,它在 maven 2.2.1 上运行良好。

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

于 2010-04-27T02:42:46.540 回答
1

尝试验证您使用的是最新版本的 maven-surefire-plugin;过去我一直被我的surefire uasge的错误所困扰,直到我意识到这些错误已经在更新版本的插件中得到修复,我只需要更新。

于 2010-05-21T19:25:15.273 回答
1

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

于 2010-04-27T00:26:43.377 回答
1

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

于 2011-11-21T08:42:26.893 回答