如何使用 `swift test` 对 iOS 包进行单元测试?

How to unit test iOS package with `swift test`?

我有一个带有 Swift 包管理器的 iOS 库。我正在尝试 运行 使用 swift test 进行单元测试 我不使用 xcodebuild 的原因是,我试图从我的源代码管理中删除 .xcodeproj。此外,当我们使用 spm 创建 xcodeproj 时会出现警告,即 generate-xcodeproj 将很快被弃用。 长话短说 这个库依赖于 Lottie 我在根目录中尝试了 运行ning swift test,但它给出了很多错误。像 /.build/checkouts/lottie-ios/lottie-swift/src/Public/Animation/AnimationView.swift:859:11: 错误:在范围内找不到 'superview' 我试过了

swift test -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios14.5-simulator"

然后报错error: module 'XCTest' was created for incompatible target x86_64-apple-macos10.15。我没有在任何地方指定 macos10.15,我在 macOS 11.5.1

我可以使用上述命令将 test 替换为 build 来构建程序包。我的测试命令有什么问题?

据我了解这是因为我没有指定目标模拟器,是否可以用 swift test 指定目标模拟器?

swift test 仅适用于 macOS 测试。它不支持 iOS.

的交叉构建

您不需要现有的 Xcode 项目即可使用 xcodebuild。 运行 命令,xcodebuild -list 初始化 Package.swift 文件进行测试。

参见示例 here