java - Maven 测试传递范围
问题描述
从 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 文件,并将其放在您的依赖项列表中,范围为“测试”。换句话说,如果你的项目 A 依赖于项目 X,你应该明确指定,不管它是否是测试代码。
有关它的更多信息,请查看:如何创建包含测试类的 jar
推荐阅读
- wso2-am - Wso2 Api 管理器 3.1.0 版中不提供配置下的“日志记录”和监视器选项卡下的“应用程序日志”
- sql - 选择一个数字列作为字符串
- certificate - 我在文本文件中有私钥。如何生成 .pem 文件或 .cer 文件
- flutter - 从无状态小部件调用有状态小部件的 setState
- r - 在R中,我如何制作一个变量并列直方图的X轴
- docker - 用于远程访问的 Docker 网络主机命令
- javascript - 使用 django 反应 redux 身份验证不起作用
- bot-framework-composer - 在 Bot Framework Composer 中更改语言
- excel - 我想在这段代码中添加公式 INDIRECT
- javascript - Javascript代码获取表格主体的最后一行并在该行被删除后隐藏表格