Intellij / Maven单元测试运行问题

时间:2010-11-11 15:17:29

标签: unit-testing intellij-idea maven pom.xml

所以我在使用Intellij在我的Maven项目中运行所有测试时遇到了问题。原因是因为少数模块依赖于加载的dll中的Native方法。由于这个dll不能加载多次,我不得不在我的maven pom文件中添加一个子句,这些测试将以分叉模式运行。

然而,在Intellij中,我无法弄清楚如何使这些相同的测试运行为分叉模式。我想利用Intellij pretty UI进行单元测试,使用绿色条和漂亮的UT接口,但由于这个问题,我无法在项目中运行所有测试。

有没有人遇到Maven,Intellij和Unit测试的问题,以及如何让它们很好地一起玩的任何提示?

以下是我的pom.xml文件的片段:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
            <executions>
                <execution>
                    <id>allTests</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                        <excludes>
                            <exclude>**/pkgA/**/*Test.java</exclude>
                        </excludes>
                    </configuration>
                </execution>
                <execution>
                    <id>forkedTests</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                        <forkMode>pertest</forkMode>
                        <includes>
                            <include>**/pkgA/**/*Test.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/SpecificTest.java</exclude>
                            <exclude>**/*PerformanceTest.java</exclude>
                        </excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

3 个答案:

答案 0 :(得分:2)

请在IntelliJ IDEA问题跟踪器中投票选择功能请求:Allow unit tests to be run seperate JVMs

答案 1 :(得分:0)

  

然而,在Intellij中,我无法弄清楚如何使这些相同的测试运行为分叉模式。

我认为IntelliJ不允许调整其test runner的行为。

  

有没有人遇到Maven,Intellij和Unit测试的问题,以及如何让它们很好地一起玩的任何提示?

一些想法/建议:

  • 使用Maven运行所有测试,即使在IntelliJ~或〜
  • 下也是如此
  • 使用执行DLL初始化的TestSuite并引用所有TestCases,当然不再加载DLL。

答案 2 :(得分:0)

在IntelliJ 14中,运行配置对话框中有 Fork模式选项。 当您在类/套件中运行所有测试时,您可以启用forkMode =方法,该方法应该等同于您的maven的 pertest