Maven测试传递范围

时间:2019-06-19 13:58:21

标签: java maven maven-3 dependency-management

从专家docs中,我们得出结论,如果项目A的直接依赖项进行了范围测试,而其传递性依赖项进行了范围测试,则该传递性依赖项将不会在项目A的测试类路径中使用< / p>

[Project A] -> [Direct Dependency of A , say  X (scope test)] -> [Direct dependency of X , say Y (scope test)]

这让我想到了一个场景(可能的,由您决定)

如果在我们的项目A中执行某些测试取决于项目X中某些测试的代码,那么maven将永远无法运行A的测试,因为它永远不会在测试类路径中使用Y。

在这种情况下,我们该怎么办?如果您说这种情况不存在,为什么?

1 个答案:

答案 0 :(得分:2)

通常,测试不包含在项目的jar文件中(否则,这些不是测试,而是项目的一部分)。

如果要在另一个项目中重用测试代码,则应创建一个包含测试类的单独的jar文件,并将其放在“ test”范围内的依赖项列表中。换句话说,如果您的项目A依赖于项目X,则应明确指定该内容,而不管它是否是测试代码。

有关更多信息,请检查以下内容:How to create a jar containing test classes