小编use*_*135的帖子

为什么XCTest UI测试有时会失败并显示错误"在原始调度的[n秒]内未能接收到事件传递确认"

XCTest UI对Mac应用程序进行了相当正常的测试,该应用程序单击应用程序菜单中的某些菜单项以打开窗口.

在某些地方 - 比如我自己的Mac - 测试工作正常.但在其他地方 - 比如Travis CI- 他们失败了,出现了这个错误:

UI Testing Failure - Failed to receive event delivery confirmation within 2.5s of the original dispatch.
...
menuBarsQuery.menuBarItems["Top level menu item"].click()
menuBarsQuery.menuItems["Menu item in sub menu"].click()
Run Code Online (Sandbox Code Playgroud)

系统:

  • Mac OS 10.11.5
  • Xcode 7.2.1
  • Mac OS SDK版本:10.11.2
  • Swift 2.1.1

稍微消毒的测试用例版本:

import XCTest

class FooUITests: XCTestCase {

    override func setUp() {
        super.setUp()
        continueAfterFailure = false
        XCUIApplication().launch()
    }

    override func tearDown() {
        super.tearDown()
    }

    func testCanDoSomething() {
        let app …
Run Code Online (Sandbox Code Playgroud)

cocoa xctest swift xcode-ui-testing

6
推荐指数
0
解决办法
311
查看次数

如何在AWS Mesosphere-on-AWS设置中托管.dockercfg文件,以便只有Mesosphere可以使用它?

我们在AWS上使用Mesosphere在私有VPC中建立了一个测试集群.我们有一些公共的Docker镜像,这些镜像很容易部署.但是,我们的大多数服务都是私有映像,托管在Docker Hub私有计划上,并且需要身份验证才能访问.

Mesosphere能够进行私有注册表身份验证,但它以不太完美的方式实现:需要在所有Mesos/Marathon任务定义中指定.dockercfg文件的HTTPS URI.

正如标题所暗示的那样,问题基本上是:.dockercfg文件应该如何在AWS中托管,以便访问可能仅限于Mesos master + slaves尽可能紧密?

amazon-web-services amazon-vpc mesos mesosphere docker-registry

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

如何使用 XCTest 对基于文档的应用程序进行 UI 测试?

鉴于以下设置:

  • 用 Swift 编写的基于文档的 OS X 应用程序
  • OS X El Capitan 开发机
  • Xcode 7.x
  • 新/升级的 XCTest 框架

如何使用 XCTest 框架对应用程序的基于文档的部分进行 UI 测试?


与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不到如何在基于文档的位上进行 UI 测试,因为在 UI 测试中,我们被禁止进入应用程序,例如,嘲笑 NSDocument 类。

我听到的一个建议是在测试资源文件夹中创建夹具文件/文件夹(取决于您的基于文档的应用程序需要什么),并以某种方式让测试打开它。但是有没有更好的解决方案?

macos cocoa xctest xcode-ui-testing

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

全新的Xcode单元测试目标无法运行,因为"启动会话在签入之前已过期".

我在Xcode的macOS app项目中添加了一个全新的单元测试目标.它包含默认的两个文件:

  • (目标名称).swift
  • 的Info.plist

但是,当我运行我的测试套件时,这个全新的目标会出现错误"测试操作失败:在检入之前启动会话已过期".

完整的日志是:

12:12:49.492 Xcode[10034:721978] Beginning test session MyTargetTests-3902F95F-20F9-4E6C-94EE-0BF8660D3B5A at 2017-06-18 12:12:49.492 with Xcode 8E3004b on target <DVTLocalComputer: 0x7fcc3cf024d0 (My Mac | x86_64)> (10.12.4 (16E195))
12:12:49.492 Xcode[10034:721978] Launching with Xcode.DebuggerFoundation.Launcher.LLDB
12:12:49.492 Xcode[10034:894962] Waiting for connection to unix domain socket at /tmp/XCTest-QcErkZ.
12:12:59.747 Xcode[10034:721978] Launch session started.
12:12:59.832 Xcode[10034:721978] Adding console adaptor <IDEConsoleAdaptor: 0x7fcc2cd44d00 'target'> for test session 3902F95F-20F9-4E6C-94EE-0BF8660D3B5A.
12:12:59.914 Xcode[10034:721978] Test process runnable PID is 19198.
12:13:02.025 Xcode[10034:721978] Test operation failure: Launch session expired before checking in. …
Run Code Online (Sandbox Code Playgroud)

macos xcode unit-testing

4
推荐指数
1
解决办法
2339
查看次数

在恒定的O(1)时间内连接2个STL向量

我将给出一些关于我为什么要这样做的背景,但最终可以忽略上下文,因为它主要是经典的计算机科学和C++问题(之前肯定已经问过,但是几个粗略的搜索什么都没发现......)

我正在使用(大型)实时流点云,并且我需要从多个传感器中获取2/3/4点云并将它们粘在一起以创建一个大点云.我实际上需要在一个结构中需要所有数据,而通常当人们只是可视化点云时,他们可以将它们分别送入查看器.

我正在使用Point Cloud Library 1.6,仔细观察它的PointCloud类(<pcl/point_cloud.h>如果你感兴趣的话)将所有数据点存储在STL向量中.

现在我们又回到了香草CS的土地......

PointCloud有一个+ =运算符,用于将一个点云的内容添加到另一个点云.到现在为止还挺好.但是这种方法效率很低 - 如果我理解正确的话,它1)调整目标矢量的大小,然后2)运行另一个矢量中的所有点,然后复制它们.

这看起来就像O(n)时间复杂度的情况,通常可能不会太糟糕,但是当实时处理每个云至少300K点时是个坏消息.

向量不需要进行排序或分析,它们只需要在内存级别"粘在一起",因此程序知道一旦它到达第一个向量的末尾,它就必须跳转到起始位置第二个.换句话说,我正在寻找O(1)向量合并方法.在STL中有没有办法做到这一点?或者更像是std :: list#splice这样的领域?

注意:这个课程是PCL非常重要的一部分,所以"非侵入性手术"更可取.如果需要对类本身进行更改(例如,从向量更改为列表,或保留内存),则必须根据对PCL其余部分的影响进行考虑,这可能是影响深远的.

更新:我已经在PCL的GitHub回购中提出了一个问题,以便与图书馆作者就下面的建议进行讨论.一旦有某种解决办法,我会接受相关的建议作为答案.

c++ stl point-cloud-library

1
推荐指数
3
解决办法
1279
查看次数