我已经创建了一个GPX文件并将其添加到我的项目中。如果我的项目正在运行,我可以从可能位置的下拉列表中选择GPX文件进行模拟,并使其正确应用定义的路径。
该项目包含两个方案:主要方案和主要方案。我已将两者都设置为使用GPX文件作为“选项”选项卡上的“默认位置”。此外,在两个方案的“测试”区域下,我再次指定了相同的文件。
当我在模拟器上运行应用程序时,它正确应用模拟位置。但是,当我运行测试时,不会应用模拟位置。我不知道为什么测试没有自动应用这个位置。在模拟器/测试设备上编译和安装测试后,我可以使用Xcode中的下拉列表应用所需的模拟位置。但是,为了设置自动化测试,该方案需要正确应用目标模拟位置,因为无法从测试脚本设置模拟的lcoation。还有其他我想念的东西吗?
这个有点老了,但是因为有一些相对最近的请求同样的事情,我把一个使用Xcode 10的例子放在一起。我不知道在写这个问题时是否还有其他问题,但是这里是怎么回事今天有效。
对于测试,您需要指定要在方案的测试设置中使用的GPX文件。这是我投入测试项目的一个例子:
此外,请确保将该方案标记为“共享”,以便将设置签入到源回购并由其他用户或CI管道检出。
在我放在一起的测试项目中,我包含了一个用于太空针塔的GPX文件和一个用于自由女神像的文件。我的运行设置没有指定GPX文件或位置,我的单元测试使用/期望Space Needle和我的UI测试使用/期望自由女神像。一切都按预期工作。当然,您可以为所有三个目标使用一个GPX文件。
需要记住的一点是,位置数据需要一些时间,因此您需要使用适当的waitForExpectations
检查,以便给位置管理员留出时间。
我发布了完整的项目,演示了使用XCTests和XCUITests on GitHub的GPX文件。