gpt4 book ai didi

swift - 如何对私有(private) Cocoapods 库进行单元测试?

转载 作者:行者123 更新时间:2023-11-30 10:27:12 24 4
gpt4 key购买 nike

我正在尝试了解如何为我的私有(private) cocoapod 库设置单元测试。

这是预期的结果:

我将单元测试目标“MyPodTests”添加到“Pods”项目,然后将目标更改为“MyPodTests”方案。然后我为单元测试创​​建了测试类。我现在可以选择“MyPodLib”方案并按 CMD+U,测试目标将执行测试。这就是我正在寻找的行为。

但是,这种方法有一些缺点。如果我在示例应用程序上执行“pod update”或“pod install”,则测试目标就会消失。如果我在示例应用程序上调用 pod update,测试也会消失。我确信有一个正确的方法可以做到这一点。另外,我想防止测试类加载到使用该库的任何使用者中,因此我在 podspec 中添加了排除项:

s.exclude_files = 'Pod/Classes/**/Test/*'

当我选择 MyPodLib 并按 CMD+U 时,没有任何反应,如果我选择 MyPodTests 并按 CMD+U,则会抛出“没有这样的模块‘MyPodLib’”错误。

最佳答案

您可能希望测试独立于示例应用程序运行。如果是这种情况,请在 pod 规范中添加测试子规范并设置其源文件。

例如,假设您有一个 Xcode 项目,其中包含框架目标 MyFramework 和测试目标 MyFrameworkTests。您的 Pod 规范将如下所示:

Pod::Spec.new do |s|
s.name = "MyFramework"
s.version = "1.0.0"
s.summary = "Summary of what MyFramework does"
s.homepage = "https://www.website.com"
s.license = { :type => "MIT", :file => "LICENCE.txt" }
s.author = "Ramesh Boosa"
s.platform = :ios, "11.0"
s.swift_versions = ["5.0", "5.1"]
s.source = { :git => "https://github.com/MyName/MyFramework.git", :tag => "v#{s.version}" }
s.source_files = "MyFramework/*.swift"
s.test_spec do|test|
test.source_files = "MyFrameworkTests/*.swift"
end
end

要检查 pod 规范并运行单元测试,请执行 pod spec lint MyFramework.podspec .

如果您的示例应用程序包含在您的 pod 中,您可以将应用程序主机添加到您的 podspec。 CocoaPods documentation有更多详细信息。

关于swift - 如何对私有(private) Cocoapods 库进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59926770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com