Junit (DBUnit) 测试在 Maven 中失败,但在 Eclipse 中却失败?

标签 junit dbunit maven-surefire-plugin

我的 Junit 测试使用 DBUnit,并且从 Eclipse 运行时运行良好。然而,使用 Maven 运行相同的测试会失败:

integrity constraint violation: foreign key no action

我已经尝试连续几次从 eclipse GUI 运行该测试和整套测试(“作为 JUnit 测试运行”),并且它们从未失败 - 但从 Maven 中它们确实失败了。

我在每次测试中都使用@DatabaseSetup,但这足以真正重置数据库吗?我还认为 Maven 可能会并行运行测试,因此我尝试在 pom.xml 中将 Surefire 插件的 forkMode 设置为“always”,但它没有改变任何内容。

最佳答案

在 Maven 测试期间,我遇到了关于 JVM 中使用的编码的类似问题。

我在 pom.xml 中添加了以下内容:

<plugins>
    ...
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <junitArtifactName>junit:junit</junitArtifactName>
            <encoding>UTF-8</encoding>
            <inputEncoding>UTF-8</inputEncoding>
            <outputEncoding>UTF-8</outputEncoding>
            <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
                -Dfile.encoding=UTF-8</argLine>
        </configuration>
    </plugin>
</plugins>

另请参阅此处 http://carlobertoldi.wordpress.com/2012/03/12/maven-unit-tests-and-those-funny-characters/

这解决了我的问题

关于Junit (DBUnit) 测试在 Maven 中失败,但在 Eclipse 中却失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15405882/

相关文章:

java - 使用数据提供者编写 Java 测试

java - 使用 DBunit 导出数据库时出错 "java.lang.NoClassDefFoundError: org/dbunit/database/IDatabaseConnection"

oracle - FKs全层级自动生成oracle数据库数据

eclipse - 通过 Eclipse 运行 JUnit 测试时的 Maven surefire 参数

java - 断言与 JUnit 断言

java - 通过反射检查局部变量值的变化

android - 如何测试方法在 Mockito 中返回 bool 值

java - Unitils/DBunit 和数据库测试

java - Docker->Maven->Failsafe->Surefire 启动 fork 失败,出现 "The forked VM terminated without properly saying goodbye. VM crash or System.exit called?"

maven - 使用 maven surefire 在第一次错误/失败后停止测试执行