0

我正在模拟器上运行一些测试代码,但每次运行前都需要重置模拟器内容,以确保在每次重新运行测试用例之前删除应用程序在执行期间存储和缓存的数据。

有没有办法在测试中做到这一点?

4

2 回答 2

1

您可以使用 simctl 从命令行重置您的模拟器,您可以在脚本中使用它来在测试方案之前运行您的操作,但不能使用单个测试用例。您需要安装 xcode 命令行工具

重置模拟器使用:

xcrun simctl erase <simulator device id>

获取您使用的设备 ID:

$ xcrun simctl list devices
== Devices ==
-- iOS 10.2 --
    iPhone 5 (D226CF12-6782-4D7D-9C00-2D662CF4022C) (Shutdown)
    iPhone 5s (34E0E0F8-3429-4D91-B038-ECF4FD0F3311) (Shutdown)
    iPhone 6 (9C772A68-34E3-4F3F-981C-543DE6D5D985) (Shutdown)
    iPhone 6 Plus (7848A50E-BFB5-4F19-BB31-4A56CA78AA2C) (Shutdown)
    iPhone 6s (12CF89BA-C8B2-4837-B4EB-FB24DFF1622C) (Shutdown)
    iPhone 6s Plus (3EE6CA84-8F12-4A5E-A31D-EF4BF3CCBDB2) (Shutdown)
    iPhone 7 (1EB3CE5D-849C-491C-9CAA-5E97B1BD89CE) (Booted)
    iPhone 7 Low Disk Space (6CCF4C7A-606B-40B7-A8D8-DF8B3CB119CB) (Shutdown)
    iPhone 7 Plus (94FEFD36-6EFF-4762-BD21-79B1F958F6C6) (Shutdown)
    iPhone SE (E8E8ECEB-34C0-44F0-B92E-57DCA91024F1) (Shutdown)
    iPad Retina (0DA5BF39-3DC7-49B3-BE9B-2FA756FCA725) (Shutdown)
    iPad Air (DAB9C2D3-8EBC-41DC-9C2D-0ECEC1D2FAE3) (Shutdown)
    iPad Air 2 (1E2DA170-5C2E-413C-831B-FA65524643D3) (Shutdown)
    iPad Pro (9.7 inch) (99F931A9-0708-4637-9294-6420DC7A149C) (Shutdown)
    iPad Pro (12.9 inch) (08CD02EB-C44A-4183-961A-EED89FF1C225) (Shutdown)
-- tvOS 10.1 --
    Apple TV 1080p (7EE393F2-C83E-467F-9802-3E5BFE7C2CA9) (Shutdown)
-- watchOS 3.1 --
    Apple Watch - 38mm (B8969533-D7CD-462E-9E76-511C08E8CC8E) (Shutdown)
    Apple Watch - 42mm (E16167D9-1007-438B-8812-CD97CE6ABECA) (Shutdown)
    Apple Watch Series 2 - 38mm (F59C0BB1-B4D0-47DD-B927-1BFD78DD78C0) (Shutdown)
    Apple Watch Series 2 - 42mm (7FE3AADD-94AB-46B9-A057-78F20F030999) (Shutdown)

设备 ID 保持不变,我认为在删除或重新创建它们之前,可能可以使用一些脚本魔法(我还没有解决)检索已启动模拟器的设备 ID,当前活动的模拟器总是被标记作为(已启动)

您还可以使用 simctl 创建自定义模拟器,只需使用 xcrun simctl 列出它所做的所有事情。

于 2017-01-11T17:41:14.837 回答
0

您可以使用 LUA 脚本通过自动化测试来执行此操作。查看http://www.coronalabs.com/blog/2011/08/11/automated-testing-on-mobile-devices-part4/了解详细说明。

基本上你会有 lua 使用事件来重置它。

于 2013-10-14T18:20:24.407 回答