从Maven docs中,我们得到的结果是,如果项目A的直接依赖项具有范围测试,而其传递性依赖项具有范围测试,则该传递性依赖项将不会被包含在项目A的测试类路径中

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


这使我想到了一个方案(可能,您可以决定)

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

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

最佳答案

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

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

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

09-10 16:58
查看更多