如何使用“swift test”对 iOS 包进行单元测试?
我有一个带有 Swift 包管理器的 iOS 库。我正在尝试使用 swift test
运行单元测试 我不使用 xcodebuild 的原因是,我试图从源代码管理中删除 .xcodeproj 。另外,当我们使用 spm 创建 xcodeproj 时会出现警告,generate-xcodeproj 将很快被弃用。 长话短说 这个库依赖于 Lottie 我尝试在根目录中运行 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"
然后它给出了错误错误:模块'XCTest'是为不兼容的目标x86_64-apple-macos10.15创建的
。我没有在任何地方指定 macos10.15,我在 macOS 11.5.1 上,
我可以使用上述命令通过将 test
替换为 build
来构建包。我的测试命令有什么问题?
据我了解,这是因为我没有指定目标模拟器,是否可以使用 swift test 指定目标模拟器?
I have an iOS library with Swift package manager. I am trying to run unit tests with swift test
The reason why I am not using xcodebuild
is, I am trying to remove the .xcodeproj
from my source control. Also, there is a warning when we create xcodeproj
with spm, that generate-xcodeproj will be deprecated soon.
TL;DR
This library depends on Lottie
I tried just running swift test
in the root directory, but it gives lot of errors. like /.build/checkouts/lottie-ios/lottie-swift/src/Public/Animation/AnimationView.swift:859:11: error: cannot find 'superview' in scope
I tried
swift test -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios14.5-simulator"
Then it gives the error error: module 'XCTest' was created for incompatible target x86_64-apple-macos10.15
. I did not specify macos10.15 anywhere, I am on macOS 11.5.1
I can build the package using the above command by replacing test
with build
. What is wrong with my test command?
As I understand this is because I am not specifying the target simulator, is it possible to specify the target simulator with swift test
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
swift test
仅适用于 macOS 测试。它不支持 iOS 的交叉构建。您不需要现有的 Xcode 项目即可使用
xcodebuild
。运行命令xcodebuild -list
以初始化Package.swift
文件进行测试。请参阅此处的示例。
swift test
only works for macOS testing. It does not support cross builds for iOS.You do not need an existing Xcode project to use
xcodebuild
. Run the command,xcodebuild -list
to initialize aPackage.swift
file for testing.See the example here.