首先请原谅我可能的无知,对我来说这是一个很新的事情,如果有什么我在这里没有提到的请告诉我,我会尽力给你所需要的信息。
所以我正在尝试使用maven在Eclipse中构建我的webapp,我有一个带有以下的测试套件
@RunWith(Suite.class)
@Suite.SuiteClasses({
// all my test classes
})
这个工作正常,当我通过右键单击运行测试并运行为Junit测试时,所有测试都通过。
当我以Maven构建的方式运行它并且以包为目标时,一堆测试失败了???
我的maven surefire插件配置如下
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
<configuration>
<excludes>
<exclude>**/Test*.java</exclude>
</excludes>
<includes>
<include>**/DynamoUnitTestSuite.java</include>
</includes>
</configuration>
</plugin>
这样它将排除运行集成测试并仅运行我的测试套件中的内容。
为什么我的测试在运行maven build时失败,而在运行测试套件时却没有?
答案 0 :(得分:6)
好的,整理好了......你会喜欢这个。
在Eclipse中,我检查了一个依赖项并且已经分支了master(我们也正在使用Git),因为我正在对这两个项目进行更改。 当我运行JUnit运行程序进行测试时,它传递正常,因为Eclipse认识到它具有此依赖性,但是当我运行maven构建时,它仍然使用旧版本的依赖项...
为了解决这个问题,我更改了依赖项的版本号并构建了它然后手动将其复制到我的本地maven仓库并更新了主项目pom文件以使用它...而volia现在通过了maven上的所有测试建立:)