3

我有一个大型构建,其中测试有时会阻止创建工件,因为它们会因模块超时而停止或终止构建。我希望我的构建服务器:

  • 构建和发布工件
  • 运行单元/集成测试

目前,单元和集成测试在每个模块的测试和集成测试阶段以典型的 Maven 方式执行。这对开发人员来说非常有用,但存在构建不足的风险。构建服务器可以通过跳过测试轻松设置构建/发布步骤,我想运行一个仅测试测试,该测试通过仅运行测试的包阶段跳过进程资源。但是,我相当肯定 maven 将再次遍历之前的所有阶段。

我想通过不必要地重建和重新打包我的工件来避免延长已经相当长的构建。

有没有人像这样拆分 maven 构建,以便桌面开发人员从测试集成中受益,而构建服务器/持续集成系统从将有风险的测试推到流程结束时受益,所以我们总是产生工件?

我是否试图以错误的方式分解构建,是否应该考虑在一系列较小的组件构建中更改单一的端到端构建?

谢谢

彼得

4

2 回答 2

4

您可以这样做:

  1. 您可以运行 maven 并跳过所有测试来安装/部署您的工件
  2. 然后你可以再次运行它,但这次只运行测试

像这样:

mvn install -DskipTests
mvn surefire:test failsafe:integration-test

如果您必须在一个命令行上完成所有这些操作,我相信您可以通过拥有两个配置文件来解决问题。一种跳过测试,一种只运行测试。

于 2013-06-03T17:49:23.573 回答
1

您可以将测试放入他们自己的模块中,这些模块取决于他们测试的模块,然后使用配置文件根据需要包含/排除测试模块。

于 2013-06-03T16:29:21.917 回答