Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 我是否可以轻松地从Mvn(故障保护插件)针对分支的不同版本运行集成测试?_Maven_Jenkins_Integration Testing_Bamboo_Maven Failsafe Plugin - Fatal编程技术网

Maven 我是否可以轻松地从Mvn(故障保护插件)针对分支的不同版本运行集成测试?

Maven 我是否可以轻松地从Mvn(故障保护插件)针对分支的不同版本运行集成测试?,maven,jenkins,integration-testing,bamboo,maven-failsafe-plugin,Maven,Jenkins,Integration Testing,Bamboo,Maven Failsafe Plugin,假设我的mvn项目发布了一个主要版本 主干是版本2,我有一个版本为1的分支。我想允许开发人员在主干上自由编辑测试,但我也希望保持从版本2到版本1的向后兼容性。是否有一种简单的方法可以针对版本2源代码运行版本1分支集成测试。我正在考虑编译和移动测试jar(不确定这是否可行),但这看起来很难看。。。。为了澄清,单元测试类用test.java表示,其中as集成测试用IT.java表示。我只想运行集成测试 我最好能像这样做 mvn integration-tests -Dfailsafe.plugin.

假设我的mvn项目发布了一个主要版本

主干是版本2,我有一个版本为1的分支。我想允许开发人员在主干上自由编辑测试,但我也希望保持从版本2到版本1的向后兼容性。是否有一种简单的方法可以针对版本2源代码运行版本1分支集成测试。我正在考虑编译和移动测试jar(不确定这是否可行),但这看起来很难看。。。。为了澄清,单元测试类用
test.java
表示,其中as集成测试用
IT.java
表示。我只想运行集成测试

我最好能像这样做

mvn integration-tests -Dfailsafe.plugin.src="branch/version1".

或者,Jenkins或Atlassian竹插件也可以工作。

在执行
mvn failsafe:integration test
之前,只需切换分支即可。这是常见的模式

Maven Failsafe插件不支持切换分支,也不支持版本控制系统(VCS)——这很好,因为这是另一个插件的职责

在Jenkins等工具中切换分支很容易。每个分支创建一个作业,对分支中代码的更改将触发jenkins构建。Jenkis支持私有maven存储库,这将有助于解决工件冲突。还可以与第二个作业共享第一个作业的工作区(结果)


在您的案例中,在jenkins中构建作业管道,在主任务的第一个作业之后,从分支执行作业以验证集成测试。

到目前为止,我看到的最好的想法是切换版本控制系统,然后只运行集成测试

步骤

  • svn共中继
  • mvn清洁安装
  • 交换支路
  • mvn故障保护:集成测试
    • 如果在此阶段运行mvn集成测试,您将重建项目,从而测试分支/旧版本

  • 我已经编写了这个代码,并针对svn/mvn/jenkins stack进行了测试,VSC是GIT、svn、CVS、Mercurial、Bazaar……?我正在发布一个svn解决方案的答案。我相信它同样适用于git和其他产品,你能详细说明一下吗?在本地签出中切换分支?使用自定义bash脚本或哪个插件?最好使用
    mvn verify
    ,否则您不会运行
    post integration
    阶段,这一阶段通常很有用,并且由不同的插件使用。tgprog,在您的情况下,创建两个jenkins作业,第一个用于master,第二个用于branch。@MariuszS有正确的想法,谢谢。你刚才说要运行mvn集成测试,你需要mvn故障保护:集成测试来运行集成测试这不是MariuszS已经回答过的同一件事吗?这应该也可以:)不,类似,但这可以在一个jenkins工作中完成。我的解决方案需要两份工作。