我已经为我的java + spring 3.0.1应用程序编写了一些单元testng测试。测试类扩展了AbstractTestNGSpringContextTests类。它使用STS 2.8.1(右键 - >运行..-> test ng)在eclipse中运行良好。但从命令行它失败了,我使用maven 2.2.1。我没有在pom.xml文件中定义任何特定的测试插件,所以我假设我使用的是默认版本。maven testng失败,但在eclipse中工作
我的信念是命令行测试方法正在同时运行,因为测试更改对象状态并且它们相互冲突。
但是我看不到任何选项来依次运行maven测试。
我说我没指定测试插件,但是我确实指定TestNG的依赖......
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
更新 - 我解决了这个问题。 该项目依赖于我在eclipse中导入和更改的另一个项目,但我没有安装.m2回购。 这意味着当我在eclipse中运行测试时,最新的更改是从eclipse工作区中的项目中选取的。但是当我从命令行运行它时,该项目的旧版本从.m2回购中获得。
你能给一个测试类的例子吗? Maven默认使用surefire插件来执行测试。 – tom 2012-02-25 14:06:36
我不喜欢它们,因为它们非常复杂,测试是针对远程端点的消息传递通道,并且我使用模拟对象从远程端点返回不同的结果。我可以说的是,类只是在每个方法的顶部使用@Test注释。 – user1232555 2012-02-25 14:29:27
除非您另行配置,否则测试依次运行。你可以尝试升级到testng'6.4',也许可以把火狐插件升级到'2.12',看看它是否有什么区别。 – Raghuram 2012-02-26 02:07:40