- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
摘要
如何获得针对iOS应用程序的多个大型数据集的实际自动化单元测试?测试越现实,测试就越困难。使用连续集成服务器(进行测试的唯一实用方法)使问题更加复杂。
但是人们做到了。怎么样?
我提出了一些断言。可能不正确。纠正它们将大大有助于回答我的问题。
项目
这是一个iOS 9应用程序,可分析在iOS设备上拍摄的大型视频文件(全分辨率,最大帧速率,典型值为10秒)。 (如果需要的话,部分分析将通过OpenCV进行。)
客户为我们提供了概念验证(Python在桌面上)和数百个示例文件。总计为8 GB。
我们想对我们的代码进行尽可能多的单元测试。我的问题是,如何针对iOS目标的大型数据集执行自动化的单元测试?
备择方案
测试越好,执行起来就越困难:
我们将从 OS X应用程序开始,以检查正确性和相对速度。将工具指向任意数量的文件很容易。但是,x86_64
具有不同的ABI,OS X具有不同的API,而iOS具有Mac无法复制的资源限制。
这会影响正确性和性能指标:您可以继续大肆追求在台式机上而不是在设备上可以进行的优化。我们最终将不得不使用Accelerate框架,该框架可能无法在两个平台上执行相同的操作。
移植到iOS之后,我们可以使用iOS模拟器,它甚至对较早的目标使用i386
(因此使用32位字)。 (我欣喜若狂,发现CGFloat
的精度在不同平台之间有所不同。)仍然存在ABI,性能和约束的问题,而Simulator的“iOS” API通常会调用OS X中的近似等效物,这一事实使情况更加复杂。
此外,我认为模拟设备不会破坏沙箱以读取设备树外的文件。我们必须(对吗?)将测试数据复制到每个模拟设备的存储中,路径对于每个开发人员将有所不同,并且不能保证它们在Xcode的各个版本中都是稳定的。如果解决了这个问题,那么即使是一台大型机器,n×m GB仍然会出现问题。
(我们可以将所有“存储的”文件链接到一个通用副本。可靠性和稳定性问题使我更加高兴。)
最终,我们必须在设备上进行测试,因为我们需要未分页的内存,即文件大小的一小部分的存储空间,且存储在节流的ARM处理器上,该处理器每年都会发生很大变化。这意味着将视频文件推入系绳,可能是连续的。向设备挑战数百个(或几十个)文件是不现实的,但是一个足够的测试套件可能需要8个文件,这很繁琐。
对于将一系列文件加载和卸载到绑定设备中的简单方法,我并不满意。我想我们可能有单独的测试目标,每个目标都有两个或三个文件存放在应用程序数据包中,用于每个测试方案。我不希望有更清洁的方法。
积分
情况变得更糟:测试将是一个漫长而艰巨的过程,需要乘以每个目标设备。要求我们的任何开发人员主持测试是不现实的(每个人都是BYOD,有时是不在现场的,别争论了)。将测试文件提交到共享存储库也不现实。 (GitHub坚决拒绝。)无论您如何执行测试,都是如此。
这指向在持续集成服务器上进行构建和测试。我们不必烦恼,但保留测试数据库并将其加载到设备的沙箱(模拟的或实际的)中的实际问题不会消失。
题
我知道这是一个已解决的问题。存在用于移动设备的大文件项目。开发人员对其进行测试。
怎么做?
最佳答案
今天碰到这个。幸运的是,我们现在生活在iOS 11以后的时代,并且具有文件提供程序,因此我们只需要将文件手动一次上传到测试设备,然后再将其很好地组织起来即可。
关于ios - Xcode iOS单元测试的非常大的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482290/
我正在观看来自 iTunes U. 的视频讲座,其中讲师展示了如何使用 Xcode 的调试器部分并能够将该窗口从主窗口拉开。 不幸的是,视频显示了如何在 Xcode3 中执行此操作的说明。如何在 Xc
现在我正在开发一个使用 Markdown 的静态网站。我不想在 SublimeText 中编辑文件,而是想在 Xcode 中编辑它们。我可以在 Xcode 中打开各个文件,但我想打开整个静态站点目录并
现在我正在开发一个使用 Markdown 的静态网站。我不想在 SublimeText 中编辑文件,而是想在 Xcode 中编辑它们。我可以在 Xcode 中打开各个文件,但我想打开整个静态站点目录并
我真的厌倦了其他用户的项目错误,因为 XCode 的默认类引用类型是“相对于 XCode 文件夹”。我知道您可以将其更改为“相对于封闭组”,这就是我们的项目,但是任何时候有人创建一个新的类文件并且忘记
我对 Xcode 一无所知,除了它是来自 Apple 的开发人员界面,它实际上来自 OSX CD,它也用于创建 iPhone 应用程序。 我也知道它有一个 Applications 文件夹,里面装满了
更新 Xcode(从 7.2 到 7.2.1)后,XcodeServer 无法运行 Xcode Service。当我选择更新的 Xcode 时,提示消息:Enable Accessibility ac
我很难找到有关新 XCode 布局的信息。如何查看源文件的反汇编,而不仅仅是 C++ 代码? 最佳答案 在 Xcode 4.2(和 Xcode 5)中,您可以通过以下方式查看文件的汇编或反汇编: 显示
我在 XCode 中为我的项目添加了一个文件夹并将其命名为 Themes,它将用于存储我的 iPad 应用程序的主题。在那下面我有红色、蓝色等等。 它们出现在 XCode 中。但是当我查看物理文件夹时
作为我之前 How can I create a reference cycle using dispatchQueues? 的后续: 对于强引用(会造成泄漏,但不是循环引用),例如Timer、Dis
我有一台 macbook air,我去商店安装 Xcode 7.3 并点击更新 App 按钮,然后出现了一个加载图标,但等待 30 分钟后什么也没发生。我从商店成功安装了 simple recorde
我的项目现在有一个project.xcworkspace/xcshareddata目录。 Xcode在project.xcworkspace/xcshareddata目录中存储什么? 最佳答案 xcs
我不经常使用 XCode 进行开发,最近 MacPorts 告诉我我需要获得 3.1 才能使包工作。我去了苹果,他们为我提供了最新版本,结果只适用于 OSX 6。因为我有 OSX 5,它对我没有任何帮
有谁知道如何强制 Xcode 停止运行。我更新到 6.2 但现在它不能正常工作。我需要退出 Xcode 才能完成更新或卸载并重新安装。菜单中的相当 Xcode 不可用。无法将其拖到垃圾箱,因为它说它仍
我最近从我的项目中删除了一些旧的测试类并删除了文件。正如预期的那样,文件被移到垃圾箱并在 git 中显示为已删除。 不幸的是,测试类和它们定义的测试用例继续出现在测试导航器中。我已经尝试过常见的疑点,
Xcode 中的场景编辑器显示大小但不显示单位。它是以英寸为单位的尺寸还是以米为单位的尺寸? 例如,当我选择一个节点时,例如一个盒子,当我在节点检查器中检查它的属性并在“边界框”旁边的“变换”部分检查
只想知道 xcode 项目中事件可执行文件的目的是什么? 谢谢 索拉布 最佳答案 自己找到了..希望它会帮助某人。 您可以在其中运行和测试软件产品的可执行环境。可执行环境定义了应该用来运行产品的程序。
刚回到我的办公 table ,Xcode 一直在文件中突出显示/强调空白区域。如果我输入一些东西它就会消失,但如果我切换标签并回来,它们会重新出现。 更新:这不是由“显示隐形”选项引起的。那看起来不一
我首先注意到这一点 Cmd-/偶尔拒绝为注释取消注释的代码行工作。但是现在(刚刚使用 XCode 4.1,虽然这可能无关)它发生在 Cmd-B建立。 我无法弄清楚我正在做什么导致这种情况,或者是否有任
我不太了解Xcode 4的工作区的实用程序。它们的用途是什么,它们如何帮助Xcode进行开发? 最佳答案 例如。您有一个在两个应用程序中使用的库。您很可能为此库拥有一个自己的项目,对吗?现在,您可以自
我正在关注一个应用程序教程,它说: “接下来,在 Xcode 应用程序项目目录的根目录下创建一个空文件,并调用该文件 Podfile。使用您喜欢的文本编辑器打开它,然后在其中粘贴以下行:” 我很困惑这
我是一名优秀的程序员,十分优秀!