这是一个用 Swift 编写的小工具 (SimctlCLI) 和库 (Simctl),用于自动化单元和 UI 测试中 xcrun simctl
模拟器命令。
它能够实现可靠的完全自动化的推送通知测试,包括动态内容,并由您控制的 UI 测试驱动。
Swift Simctl 由两部分组成:SimctlCLI
和 Simctl
。
Simctl
是一个 Swift 库,可以添加到项目的测试包中。它提供了一个接口,用于从测试代码中调用通常只能通过 xcrun simctl
访问的命令。为了能够调用这些命令,Simctl
通过本地网络连接与 SimctlCLI
进行通信。
SimctlCLI
是一个小型的命令行工具,它启动一个本地服务器,监听来自 Simctl
(客户端库)的请求,并执行 xcrun simctl
命令。
以下命令将在您的(测试)目标代码中可用:
有关具体用法,请参阅示例项目 Swift Simctl Package Example
以下说明将使您能够在您的机器上启动并运行该项目的副本。
要在您的 Xcode 项目中使用 Swift Simctl,请添加该包
SwiftSimctl
或找到 https://github.com/ctreffs/SwiftSimctl.git
SwiftSimctl
包 > Next
import Simctl
在您的(测试)目标中访问该库。确保在测试运行期间,SimctlCLI
在您的主机上运行。 要使用 Xcode 本身自动执行此操作,请使用以下代码段作为测试目标的前置和后置操作。
#!/bin/bash
killall SimctlCLI # cleaning up hanging servers
set -e # fail fast
# start the server non-blocking from the checked out package
${BUILD_ROOT}/../../SourcePackages/checkouts/SwiftSimctl/bin/SimctlCLI start-server > /dev/null 2>&1 &
#!/bin/bash
set -e
killall SimctlCLI
有关深入的代码示例,请参阅示例项目 https://github.com/ctreffs/SwiftSimctlExample
服务器使用的默认端口是 8080
。
如果您需要使用另一个端口,则需要在调用 SimctlCLI
时通过 --port
标志提供它,并在设置代码中的测试时相应地调整客户端端口。
使用 SimctlCLI --help
获取有关此设置和其他服务器配置设置的帮助。
如果没有这些出色的库,Swift Simctl 将不可能实现
如果您想贡献,请首先参阅 CONTRIBUTION GUIDE。
在提交代码之前,请务必运行
make precommit
该项目目前由 @ctreffs 维护。
另请参阅参与此项目的 贡献者 列表。
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。