Xcode Scheme默认位置在测试中被忽略

问题描述 投票:8回答:1

我已经创建了一个GPX文件并将其添加到我的项目中。如果我的项目正在运行,我可以从可能位置的下拉列表中选择GPX文件进行模拟,并使其正确应用定义的路径。

该项目包含两个方案:主要方案和主要方案。我已将两者都设置为使用GPX文件作为“选项”选项卡上的“默认位置”。此外,在两个方案的“测试”区域下,我再次指定了相同的文件。

主要方案运行选项Main Scheme Run Options

主要方案测试设置Main Scheme Test

测试方案运行选项Test Scheme Run Options

测试方案测试设置Test Scheme Test setup

当我在模拟器上运行应用程序时,它正确应用模拟位置。但是,当我运行测试时,不会应用模拟位置。我不知道为什么测试没有自动应用这个位置。在模拟器/测试设备上编译和安装测试后,我可以使用Xcode中的下拉列表应用所需的模拟位置。但是,为了设置自动化测试,该方案需要正确应用目标模拟位置,因为无法从测试脚本设置模拟的lcoation。还有其他我想念的东西吗?

ios xcode geolocation xctest xcuitest
1个回答
5
投票

这个有点老了,但是因为有一些相对最近的请求同样的事情,我把一个使用Xcode 10的例子放在一起。我不知道在写这个问题时是否还有其他问题,但是这里是怎么回事今天有效。

对于测试,您需要指定要在方案的测试设置中使用的GPX文件。这是我投入测试项目的一个例子:

Test simulated location settings

此外,请确保将该方案标记为“共享”,以便将设置签入到源回购并由其他用户或CI管道检出。

在我放在一起的测试项目中,我包含了一个用于太空针塔的GPX文件和一个用于自由女神像的文件。我的运行设置没有指定GPX文件或位置,我的单元测试使用/期望Space Needle和我的UI测试使用/期望自由女神像。一切都按预期工作。当然,您可以为所有三个目标使用一个GPX文件。

需要记住的一点是,位置数据需要一些时间,因此您需要使用适当的waitForExpectations检查,以便给位置管理员留出时间。

我发布了完整的项目,演示了使用XCTests和XCUITests on GitHub的GPX文件。

© www.soinside.com 2019 - 2024. All rights reserved.