IntelliJ找不到测试包

时间:2014-10-30 15:06:02

标签: intellij-idea

我遇到一个问题,让IntelliJ成功找到一个名为[公司前缀] .util.db的特定测试包。我试图在另一个模块的单元测试中从这个包导入一个类。该软件包存在于测试源文件夹下,但在常规源文件夹下没有并行(此模块的测试和常规软件包结构都包含[公司前缀] .util软件包,但有[公司前缀] .util.db软件包仅在测试包中)。单元测试通过ant运行得很好,但出于某种原因,IntelliJ只是拒绝将导入视为有效。

错误似乎表明导入的[公司前缀] .util部分有效,但找不到db子包。我如何帮助IntelliJ查看我需要的课程?

1 个答案:

答案 0 :(得分:1)

当您声明对库的依赖关系时,即使具有测试范围依赖关系,类路径中也只包含生产类,因为测试代码未添加到生产jar中。

要依赖测试文件夹中的资源(类,等等),您必须将要打包的类打包到可以依赖于测试范围的库中。要做到这一点我们使用maven jar插件生成一个测试jar(在我们的例子中,我们只对共享一个类感兴趣,但你可以使用包含列表来适应自己):< / p>

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <goals>
               <goal>test-jar</goal>
            </goals>
            <configuration>
                <includes>
                    <include>org/company/web/ValidatorTestUtils.class</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

然后我们的依赖包含测试范围和类型:

<dependency>
    <groupId>org.company.app</groupId>
    <artifactId>core-web</artifactId>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>

这使得核心Web模块的测试类可用于依赖模块的测试。