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

发布于 2025-01-11 20:23:56 字数 766 浏览 0 评论 0原文

我有一个带有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

︶ ̄淡然 2025-01-18 20:23:56

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 a Package.swift file for testing.

See the example here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文