android - 如何在 Jenkins 中集成 Monkeyrunner 测试?

标签 android testing jenkins monkeyrunner

我有一个在 Jenkins 中构建的 Android 项目。 我已经设置了一个 JUnit 测试项目来对应用程序进行单元测试。这在 Jenkins 中得到了很好的整合。所有测试都由 Ant 构建文件运行,测试结果可以通过插件显示在 Jenkins 中。

现在我为 Monkeyrunner 编写了一些功能测试,并希望将它们也集成到 Jenkins 构建中。

有什么方法可以做到这一点? 当然,我可以调用 Monkeyrunner 作为 shellscript-buildstep。

据我所知,在 Monkeyrunner 脚本中我只能做类似的事情:

test some stuff...
if xyz:
  print 'test successful'
else:
  print 'test failed'

但是,Jenkins 没有Monkeyrunner 插件,Jenkins 怎么知道测试结果呢? 我是否必须以某种方式读出控制台,或者我应该怎么做?

希望大家能看懂我的问题,我的英文不是很好。

提前致谢!

最佳答案

如果您的脚本以 0 的退出状态退出,Execute shell 任务将标记构建成功。所有其他退出状态会将构建标记为失败。在您的 monkeyrunner 脚本中,您可以使用 exit() 语句来设置退出状态。

# test some stuff...
if xyz:
  sys.exit(0) # success
else:
  sys.exit(1) # failure

如果您需要更精细的东西,可以使用类似 Text-finder Plugin 的东西如果使用退出代码不够,则解析 Monkeyrunner 脚本的输出。

编辑:为澄清起见,添加一个执行 shell 步骤,并从该步骤中调用您的 monkeyrunner 脚本。如果脚本以 0 状态退出,Jenkins 将继续,否则构建将失败。

您可能需要提供 monkeyrunner interpereter 的完整路径,即:

/path/to/android-sdk/tools/monkeyrunner my-script.mr

关于android - 如何在 Jenkins 中集成 Monkeyrunner 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991684/

相关文章:

c# - 如何使用 ReceiveAsync 测试 Akka.NET actor 中的异步异常

c# - 为什么这个异步单元测试会永远阻塞线程?

jenkins - org.apache.maven.project.ProjectBuildingException : Some problems were encountered while processing the POMs: [ERROR] in WSO2 EI Project using jenkins

java - 如何传递 Jenkins 配置来覆盖自动化配置

Android 在使用 ContextMenu 传递 ListView 中所选项目的 id 时出错

android - 如果我在构建类型和产品风格中定义类会怎样?

android - 在 BroadcastReceiver 的 onReceive() 中创建 PendingIntent

android - 类重复在 Android 仪器测试中添加 Robolectric

Jenkins 未满足的资格

android - Toast.makeText().show() 消息在 Activity-less 服务中去哪里?