【问题标题】:Maven build with tests failing but JUnit runner tests passing?Maven 构建时测试失败但 JUnit 运行器测试通过?
【发布时间】:2013-11-08 00:17:25
【问题描述】:

首先请原谅我可能的无知,行家的做事方式对我来说很新,如果有什么我没有在这里提到的,请告诉我,我会尽力给你你需要的信息.. .

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

【问题讨论】:

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


    【解决方案1】:

    好的,解决了……你会喜欢这个的。

    在 Eclipse 中,当我对两个项目进行更改时,我检查了一个依赖项并从 master 分支(我们也在使用 Git)。 当我运行 JUnit 运行器进行测试时,它运行良好,因为 Eclipse 识别出它具有这种依赖关系,但是当我运行 maven 构建时,它仍在使用旧版本的依赖关系......

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

    【讨论】:

    • 这里说的是什么依赖?
    猜你喜欢
    • 2012-08-05
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2016-03-09
    • 2018-06-18
    • 2011-03-22
    相关资源
    最近更新 更多