4

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

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

有没有人遇到过 Maven、Intellij 和单元测试的问题以及如何让它们很好地协同工作的任何提示?

这是我的 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>
4

3 回答 3

2

请投票支持功能请求:允许单元测试在 IntelliJ IDEA 问题跟踪器中运行单独的 JVM 。

于 2010-11-11T16:35:23.383 回答
0

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

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

有没有人遇到过 Maven、Intellij 和单元测试的问题以及如何让它们很好地协同工作的任何提示?

一些想法/建议:

  • 使用 Maven 运行所有测试,甚至在 IntelliJ 下~or~
  • 使用一个进行 DLL 初始化并引用所有 TestCases 的 TestSuite,当然它们不再加载 DLL。
于 2010-11-11T16:30:08.690 回答
0

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

于 2014-11-21T10:08:37.937 回答