java - 如何在 Maven 中运行单个集成测试?
问题描述
我正在尝试运行单个集成测试。我有很多 *IT 课程,我只想运行一个测试。我试试这个:
mvn -Dit.test=XControllerIT verify
我做错了吗?还有另一种选择吗?正在使用 Maven。
解决方案
根据您的项目设置,有两个主要选项:
- 集成测试使用专用的故障安全插件运行
- 集成测试使用常规的肯定插件运行
如果你有一个故障保护插件(实际上你应该这样做,这是一种推荐的方法),那么使用以下代码段:
mvn -Dit.test=MySampleIntegrationTest failsafe:integration-test
如果您确定无误,请运行:
mvn -Dtest=MySampleUnitTest surefire:test
在这两种情况下,都有一个直接的插件目标执行,绕过你的初始示例中的生命周期(使用mvn verify
)
在 Maven 中,可以运行生命周期,请参阅默认生命周期文档以获取更多信息
基本上,生命周期由绑定到每个阶段的插件的阶段组成,因此当您运行mvn verify时,verify之前的所有阶段也将运行。
结果,代码将被编译(编译阶段会自动附加一个 maven 编译插件来完成这项工作),测试将运行(surefire 插件),等等。
如果您没有已编译的源代码和测试代码,则不能使用所提供的方法,因为您必须先编译代码。
但是,如果您已经编译了所有内容,则只运行一个测试而不重新编译代码是有意义的,在这种情况下,您可以根据插件使用建议的解决方案。
特别是对于本地调试或 CI 在某些情况下多步骤构建设置(可以在相当复杂的项目中看到)有意义
推荐阅读
- xaml - 如何使用“资源系统”根据分辨率缩放在 UWP XAML 应用程序中缩放字体
- javascript - 检查对象javascript中的值是否为字符串
- java - Java将文件读入列表
- python - 按字典python列表中的值总和排序
- android - 表格视图推到屏幕顶部
- java - Hashmap方法求和
- reactjs - 我如何知道 redux 商店何时更新
- c# - 如何根据 Razor 页面的主表中的项目 ID 检索子表的项目?
- javascript - 通过 Ajax POST 方法发送 FormData 返回 403
- java - 在 Java AES 加密中使用提供者