从 maven 文档中,我们得到如果我们的项目 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,你应该明确指定它,不管它是否是测试代码。
有关它的更多信息,请查看以下内容:如何创建包含测试类的jar