Jenkins - 使用Genymotion虚拟机替代Android模拟器

5
有人设法让Jenkins使用Genymotion的Android虚拟机,而不是超级慢的Android模拟器吗?
在我的开发机上,Genymotion实际上比真实设备更快,因此非常适合运行CI测试。
谢谢任何想法。
西蒙

1
Genymotion的行为就像一个简单的设备一样。因此,您可以使用ADB来管理它。您在使用过程中有明确的问题吗? - eyal-lezmy
我找到了一个教程,介绍如何在Jenkins上集成Genymotion:http://blog.genymobile.com/genymotion-jenkins-android-testing/ - Christopher
请查看这篇关于Jenkins和Genymotion 2.5的新(官方)文章:http://www.genymobile.com/genymotion-jenkins-integration/ - Dori
3个回答

4
如果在CI服务器上启动genymotion并让它一直运行,则会正常工作。虽然如果你想要唤醒它,只为了测试一下,然后再关闭它,那么是的,你将错过一些与genymotion相关的东西。
Jenkins Android模拟器插件在这方面非常有用,而目前还没有与genymotion相当的替代品。Genymotion仍然无法通过命令行进行脚本化,最好是无头的。
尽管如此,在我们公司的项目中,我们最近切换到了genymotion,启动一个“模拟器”,让它始终在CI服务器上运行,一切都很正常。这真的很值得,我们将构建时间缩短了2倍,而且即使启用HAX,我们也不会遇到真正的模拟器常见的内存问题。
Genymotion需要一个Jenkins插件,我认为他们已经在路上了。

1
你可以在这里找到如何在命令行上启动Genymotion模拟器的方法:[https://dev59.com/1mMl5IYBdhLWcg3wcmrD] - Snicolas
你如何让Genymotion在Jenkins用户下启动?VirtualBox只适用于默认系统管理员,而不适用于Jenkins! - IgorGanapolsky

2
您可以像这样使用已配置的实例启动播放器:
/Applications/Genymotion.app/Contents/MacOS/player --vm-name "Galaxy Nexus - 4.2.2 - API 17 - 720x1280"

请注意它不是无头的。
要获取已配置实例的列表,请使用VBoxManage:
$ VBoxManage list vms
"Galaxy Nexus - 4.2.2 - API 17 - 720x1280" {56d8e3aa-ecf8-483e-a450-86c8cdcedd35}

您可以使用名称(带引号)或 ID 与 --vm-name 一起使用。


这对于登录Jenkins的用户是行不通的,因为他没有访问vm的权限。 - IgorGanapolsky
我相信它需要对用户/权限进行一些操作,但我们在MacBook上有一个Jenkins作业正在运行。我不再与这个项目有关联,所以我不确定当前的状态是什么,特别是自去年秋季以来GenyMotion所做的所有更改。 - k s
是的,主要问题在于Jenkins在它自己的Unix用户帐户下运行。该帐户通常与MacBook用户在Genymotion下载时使用的VirtualBox帐户不同。 - IgorGanapolsky

0

你可以使用仿真器的x86版本。Genymotion基本上是一个x86版本的仿真器,这就是为什么它比Android ARM版本的仿真器更快。


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