Android CI与Atlassian Bamboo

7

有没有关于如何使用Bamboo进行Android项目持续集成的好资源?我已经设置好了拉取源代码并使用ant编译的步骤。但我很想知道如何设置JUnit测试,其中测试是在单独的项目中进行的。

谢谢


你能分享一下使用Gradle构建Android项目的指南吗? - CoDe
我们在Bamboo中安装了JFrog Artifactory插件,它有一个构建Gradle任务。您不需要使用JFrog也可以使用。然后,您只需在任务类型“clean assembleDebug”下说出任务名称即可。 - bhawkins
我已经尝试过了,但是出了些问题。上次我尝试时,至少构建开始并抛出失败输出,但这次什么都没有发生。让我检查一下我的端口,很快会回复您的。 - CoDe
2个回答

2
我已经想到了如何使用Bamboo CI和新的Android Studio项目与gradle进行操作。虽然Bamboo没有很好的预置任务,但您可以利用脚本运行程序来完成它。我们设置基本的构建任务如下:
- 源代码检查。 - 脚本任务:
- 脚本位置:内嵌。 - 脚本正文:gradlew.bat assembleDebug test(我们的Bamboo服务器是Windows,因此我们使用bat文件;如果是Linux,则使用./gradlew assembleDebug test命令)。
然后,我们添加一个最终的JUnit解析器任务,并使用结果目录行:**/test-results/debug/*.xml
至于测试,我们使用Robolectric Gradle测试生成JUnit测试结果。
希望这能帮助任何想要在Android上设置Bamboo的人,希望他们有一天会像.NET一样添加支持,只需一个单一的任务即可构建和测试。脚本命令感觉有点像黑客攻击。
如果有人正在寻找Ant样式测试,我也可以分享一下,但希望现在每个人都已经从eclipse转移到了Android Studio。我要说的是,为Ant和Instrumentation所需的步骤需要更多的时间来设置,并且我不得不在服务器上运行模拟器来进行测试。

1
我的任务是查找存储库外的测试报告,例如:无法在 /Users/<user>/bamboo-agent-home/xml-data/build-dir/<bamboo_pbuild_name> 目录中找到测试结果报告 - Jacek Kwiecień
只有在一个设备连接或模拟器已经启动的情况下,这才能正常工作。 - Roel

0
除了使用Bamboo为我的Android项目构建APK之外,我还想使用Bamboo在Android模拟器上运行基于JUnit的测试。在寻找可靠的启动和停止Android模拟器的方法方面进行了相当多的“试错”,以下是我为我的Bamboo构建计划设计的内容。有关为什么采用下面所述方法的背景信息,请参见Bamboo waits for script task to terminate, although it is run in the background
我的Bamboo计划有一个阶段和两个作业。这两个作业在同一系统上执行,并行启动和运行。其中一个作业使用Android SDK模拟器命令启动Android模拟器。另一个作业等待模拟器启动,构建移动应用程序,在模拟器上运行测试,然后使用最终任务停止正在运行的模拟器,即使构建作业中的先前任务失败,该任务也始终会被执行。
启动模拟器的作业在启动模拟器后确实会“卡住”,因为它正在等待模拟器进程完成。当构建作业运行时,构建作业中的最终任务将停止模拟器,这会导致模拟器作业完成,因为模拟器进程不再运行。

以下是构建作业的关键任务细节:

第一个任务是等待模拟器启动的脚本任务。如果模拟器未能启动,则下面的adb -s命令将失败,导致此任务失败。

echo "Waiting 60 seconds for the Android emulator to start"
sleep 60
echo "See if Emulator is up and running"
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 shell getprop dev.bootcomplete

第二和第三个任务检查源代码并使用Gradle构建应用程序。构建会在运行的模拟器上运行JUnit测试。

第四个任务被配置为最终任务,是一个脚本任务,用于停止模拟器。

echo "Stopping the Android emulator"
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 emu kill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接