小编Dav*_*ell的帖子

Xcode 7 UI测试失败,"等待键事件完成超时"

我和我的团队一直在设置Jenkins服务器,以便在我们用作构建服务器的Mac Mini上自动运行单元和ui测试.Mac Mini没有连接外围设备,我们可以访问它的唯一方法是远程登录.

当我使用Mac内置的屏幕共享应用程序远程登录计算机时,使用iOS模拟器可以很好地运行测试.但是,如果我在测试运行时关闭了远程连接,那么在尝试键入时(包括所有其他测试/ ui测试通过飞行颜色),涉及键入文本的ui测试将失败并出现以下错误:

断言失败:等待键事件完成超时

当Jenkins自动为我们运行测试时,这显然会导致一些问题,因为我们并不总是希望远程登录到计算机.

我觉得这与模拟器的软件键盘有关,但我不明白为什么会出现这个问题.为了软件键盘存在或者某些这样的事情,mac是否需要连接某种显示输出?将显示器连接到机器(即使它没有真正使用)会导致测试通过吗?为什么会这样呢?

automated-tests build-server ios-simulator xcode-ui-testing

10
推荐指数
1
解决办法
1778
查看次数

SceneKit不会缩放动态体

我有一个充满活力的球体.我想动画这个球体的比例,使它的大小增加:

let sphere = SCNNode(geometry: SCNSphere(radius: 1))
scene.rootNode.addChildNode(sphere)
sphere.physicsBody = SCNPhysicsBody.dynamicBody()
sphere.runAction(SCNAction.scaleTo(10, duration: 1))
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.球体由于重力而下落,但尺寸保持不变.如果我注释掉赋予球体物理体的线条,那么缩放动画就像它应该的那样.

甚至在没有动画的情况下观察到这种奇怪现象 简单地直接改变球体的比例是行不通的:

let sphere = SCNNode(geometry: SCNSphere(radius: 1))
scene.rootNode.addChildNode(sphere)
sphere.physicsBody = SCNPhysicsBody.dynamicBody()
sphere.scale = SCNVector3(x: 10, y: 10, z: 10)
Run Code Online (Sandbox Code Playgroud)

球体下降但半径为1.除非在添加物理体之前对球体进行缩放.在这种情况下,球体开始缩放到10并下降,保持其半径为10.

有趣的是,在动画假定运行后通过打印出球体的比例进行进一步检查后,观察到比例确实发生了变化,除非物理体被移除,否则它是不可见的:

let sphere = SCNNode(geometry: SCNSphere(radius: 1))
scene.rootNode.addChildNode(sphere)
sphere.physicsBody = SCNPhysicsBody.dynamicBody()
sphere.runAction(SCNAction.scaleTo(10, duration: 1), completionHandler: {() in
    println(sphere.scale.x)
    sphere.physicsBody = nil
})
Run Code Online (Sandbox Code Playgroud)

为什么不可能改变动态体的规模?(请注意,静态和运动体可以很好地扩展.)是否有可能以某种方式实现这一点?

scenekit swift ios8

5
推荐指数
1
解决办法
3079
查看次数