【发布时间】:2011-08-16 03:22:04
【问题描述】:
假设我们有一个 android 客户端和一个 java api 服务器 并且代码提交到具有不同子文件夹的同一个 svn 存储库
Svn 版本 1:[服务器版本 1]
Svn 版本 2:[服务器版本 1] [客户端版本 1]
Svn 版本 3:[服务器版本 2] [客户端版本 1]
Svn 版本 4:[服务器版本 2] [客户端版本 2]
Svn 版本 5:[服务器版本 3] [客户端版本 2]
当开发人员签入版本 5 时,很容易设置 buildserver 并要求 maven 使用最新的客户端版本 2 对服务器版本 3 代码进行集成测试。
但是我们有大量用户使用版本 1,我们当然需要在服务器版本 3 中向后兼容客户端版本 1。
我的问题是 maven/buildserver 是否为这种类型的集成测试内置了任何东西?
对于我的例子,我使用 teamcity 和 maven 来自动化我的集成测试。
================================================ ========
在寻求 Kozelka 的建议后,我将通过以下方式使测试自动化:
Svn 布局
svn repository
client trunk
server trunk
released version
client release version 1
client release version 2
每次开发人员签入服务器主干时,teamcity build 都会尝试对服务器代码进行“maven 安装”,并将其打包为战争工件并安装到本地 maven 存储库。
然后将触发 teamcity 进行客户端 V1 分支的检出,在客户端版本 1 pom 中,它依赖于最新的服务器工件,并将使用集成之前的最新服务器工件启动码头-使用客户端版本 1 api 视图对其进行测试和测试。
同样的事情也适用于客户端 version2 分支,对于每个受支持的客户端版本,都需要在 teamcity 中构建一个单独的子项目,以确保最新的服务器向后兼容旧的 api 视图。
【问题讨论】:
标签: java android maven continuous-integration