【问题标题】:Jenkins: Automatic version checking of Maven-Release using Unit-TestsJenkins:使用单元测试对 Maven-Release 进行自动版本检查
【发布时间】:2012-04-24 15:41:09
【问题描述】:

我正在尝试配置 Jenkins-Job 以使用 Maven-Release-Plugin 发布 Java-Project。
我想确保如果当前版本与前一个版本不兼容,我用来将版本标记为与早期主要版本不兼容的主要版本会发生变化。

一个例子:

最后一个版本是 1.9.5 版,其中包含一个名为 Foo
当前版本中,该类已被删除。
用户指定当前发布版本 1.9.6 并启动 詹金斯-乔布斯。

版本应该告诉用户当前的主要版本应该是 2 而不是 1,因为 API 变得不兼容。

我想过使用上一版本的单元测试来测试当前版本的代码。如果某些 API 变得不兼容,则以前版本的单元测试应该在编译或测试期间失败(假设该代码有一个单元测试)。

我的方法需要将测试保存在一个单独的项目中,并从我的 VCS 中检查两个版本。

您是否知道任何 Jenkins-Plugin 可能有助于这样做,或者您对如何检查 API 是否在两个主要版本之间变得不兼容有任何其他想法?

【问题讨论】:

    标签: java unit-testing maven jenkins release


    【解决方案1】:

    我认为为此使用 Jenkins 或发布插件没有任何意义 - 你要发布多少次主要版本?

    您将单元测试分离到不同项目中的想法很好。只需针对您要发布的 -SNAPSHOT 版本运行先前版本的测试即可。如果他们通过了,那很好。否则,修改主版本号。

    【讨论】:

    • 我正在考虑执行发布的以下步骤: - 签出 VCS 的新副本 - 构建当前代码并运行单元测试 - 签出先前版本的单元测试 - 运行先前单元- 测试 - 用正确的版本标记 VCS - 开始发布并将当前版本更新到下一个快照版本如果我们有一个只提供当前和下一个版本的作业/工具,这会不会更容易?
    • 是的,我想用工具来做这件事会更容易。也许您可以将mojo.codehaus.org/versions-maven-plugin/… 与旧版本的单元测试结合使用?
    【解决方案2】:

    由于我对您的 API 没有任何了解,因此无法提出任何与测试您的 API 兼容性相关的建议。

    在 Jenkins/Maven 方面,我建议您使用名为“在其他项目上触发参数化构建”的构建后操作选项,将实际发布构建作为测试工作的下游工作运行

    使用此功能,您可以根据该作业的结果,以不同的参数触发下游作业。 IE。如果整个测试套件通过,则触发次要版本构建,反之亦然。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      相关资源
      最近更新 更多