如何使用 `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。
我有一个带有 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。