我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)
系统:
稍微消毒的测试用例版本:
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) 我们在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
鉴于以下设置:
如何使用 XCTest 框架对应用程序的基于文档的部分进行 UI 测试?
与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不到如何在基于文档的位上进行 UI 测试,因为在 UI 测试中,我们被禁止进入应用程序,例如,嘲笑 NSDocument 类。
我听到的一个建议是在测试资源文件夹中创建夹具文件/文件夹(取决于您的基于文档的应用程序需要什么),并以某种方式让测试打开它。但是有没有更好的解决方案?
我在Xcode的macOS app项目中添加了一个全新的单元测试目标.它包含默认的两个文件:
但是,当我运行我的测试套件时,这个全新的目标会出现错误"测试操作失败:在检入之前启动会话已过期".
完整的日志是:
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) 我将给出一些关于我为什么要这样做的背景,但最终可以忽略上下文,因为它主要是经典的计算机科学和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回购中提出了一个问题,以便与图书馆作者就下面的建议进行讨论.一旦有某种解决办法,我会接受相关的建议作为答案.
cocoa ×2
macos ×2
xctest ×2
amazon-vpc ×1
c++ ×1
mesos ×1
mesosphere ×1
stl ×1
swift ×1
unit-testing ×1
xcode ×1