当前位置: 首页 > 知识库问答 >
问题:

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

牟波
2023-03-14

我的Junit测试使用DBUnit,从Eclipse运行时运行良好。但是,使用Maven运行相同的测试会导致以下一项测试失败:

integrity constraint violation: foreign key no action

我已经连续几次尝试从EclipseGUI(“作为JUnit测试运行”)运行该测试和整个测试集,但它们从未失败——但从Maven来看,它们确实失败了。

我对每个测试都使用@数据库设置,但这足以真正重置数据库吗?我还认为Maven可能会并行运行测试,所以我尝试在pom.xml中为Surefire插件设置forkMode为“总是”,但它没有改变任何事情。

共有2个答案

吕越彬
2023-03-14

您正在使用spring test DBUnit中的注释@DatabaseSetUp进行数据库初始化。您也应该使用注释@DatabaseTearDown

来自Spring测试DBUnit留档:

测试完成后,@DatabaseTearDown注释可用于重置数据库表。与@DatabaseSetup一样,可以在方法或类级别应用注释。使用@DatabaseTearDown时,请使用与@DatabaseSetup相同的值和类型属性

温嘉玉
2023-03-14

在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 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们(在构建过程中)时,它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及从Maven获得的异常: PersonServiceTest

  • 我有一个测试,在詹金斯内部运行时总是失败。 我的项目包括Selenium webdriver、JAVA、Maven、TestNG、Jenkins和Allure(reports)。我有几个包含100个测试用例的测试套件,我通过3种不同的浏览器对它们进行迭代(这些测试使用TestNG并行运行)。它们都运行(使用maven命令行)并传入我的开发笔记本电脑,使用命令行时在测试服务器上运行。 我有两个关于J

  • 首先请原谅我可能的无知,专业的做事方式对我来说很新鲜,如果有什么我没有提到的,请告诉我,我会尽力给你你需要的信息。。。 所以我试图用maven在Eclipse中构建我的webapp,我有一个测试套件 这很好,当我右键单击并以Junit test运行测试时,所有测试都通过了。 当我以Maven build的形式运行它,并以打包一系列测试为目标时,失败了??? 我的maven surefire插件配置

  • 我按照cypress在他们的文档中推荐的方式编写测试,即每个测试有多个断言,但是用这种方式编写测试时会出现一个问题,那就是如果断言失败,测试执行就会停止。 我希望每个测试有多个断言,如果其中一个失败,测试将失败,但将继续测试执行,所以在最后,我将能够看到测试中失败的所有断言,而不仅仅是第一个失败的断言。 提前感谢!

  • 我试图用jenkins execution命令测试我的java项目,但是我得到了以下错误消息: 有关单个测试结果,请参阅/var/jenkins_home/workspace/test1/target/surefire-reports。请参阅转储文件(如果存在)[date].dump,[date]-jvmrun[N].dump和[date].dumpstream。分叉的VM在没有正确地说再见的情况