Maven构建测试失败,但JUnit跑者测试传递?

时间:2013-10-29 01:31:04

标签: java eclipse maven junit maven-surefire-plugin

首先请原谅我可能的无知,对我来说这是一个很新的事情,如果有什么我在这里没有提到的请告诉我,我会尽力给你所需要的信息。

所以我正在尝试使用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时失败,而在运行测试套件时却没有?

1 个答案:

答案 0 :(得分:6)

好的,整理好了......你会喜欢这个。

在Eclipse中,我检查了一个依赖项并且已经分支了master(我们也正在使用Git),因为我正在对这两个项目进行更改。 当我运行JUnit运行程序进行测试时,它传递正常,因为Eclipse认识到它具有此依赖性,但是当我运行maven构建时,它仍然使用旧版本的依赖项...

为了解决这个问题,我更改了依赖项的版本号并构建了它然后手动将其复制到我的本地maven仓库并更新了主项目pom文件以使用它...而volia现在通过了maven上的所有测试建立:)

相关问题