复制 Xcode SPM 测试的资源文件

2024-01-26

我是 Swift 包管理器的新手,但随着它集成到 Xcode 11 中,是时候尝试一下了。我在新工作区中有一个新应用程序和 SPM 库。我有一个带有测试的工作库,并已成功将该库导入到应用程序中。

我需要使用解析 json 文件的新测试来扩展 SPM 库。我了解到不支持资源目录功能。唯一可行的方案似乎是在库构建过程中添加文件复制步骤,以便可执行文件可以发现资源文件。

我可以弄清楚如何从命令行执行此操作,但不能使用运行构建和测试的 Xcode。没有复制捆绑资源,快速包的构建阶段。实际上一切似乎被 Xcode 隐藏了。

我在 SPM 中查找了 Makefile 类型文件,这些文件允许我编辑默认命令行操作,从而绕过 Xcode;但我没有看到他们。

有没有某种方法可以交互/控制 Xcode 11 如何构建 SPM 目标,以便我可以将非代码文件复制到测试目标?


成功了!!!

struct Resource {
  let name: String
  let type: String
  let url: URL

  init(name: String, type: String, sourceFile: StaticString = #file) throws {
    self.name = name
    self.type = type

    // The following assumes that your test source files are all in the same directory, and the resources are one directory down and over
    // <Some folder>
    //  - Resources
    //      - <resource files>
    //  - <Some test source folder>
    //      - <test case files>
    let testCaseURL = URL(fileURLWithPath: "\(sourceFile)", isDirectory: false)
    let testsFolderURL = testCaseURL.deletingLastPathComponent()
    let resourcesFolderURL = testsFolderURL.deletingLastPathComponent().appendingPathComponent("Resources", isDirectory: true)
    self.url = resourcesFolderURL.appendingPathComponent("\(name).\(type)", isDirectory: false)
  }
}

Usage:

final class SPMTestDataTests: XCTestCase {
  func testExample() throws {
    // This is an example of a functional test case.
    // Use XCTAssert and related functions to verify your tests produce the correct
    // results.
    XCTAssertEqual(SPMTestData().text, "Hello, World!")

    let file = try Resource(name: "image", type: "png")
    let image = UIImage(contentsOfFile: file.url.path)
    print(image)
  }
}

我找到了使用的关键#file here https://stackoverflow.com/a/57708634/253456

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复制 Xcode SPM 测试的资源文件 的相关文章

  • Xcode 11——SwiftUI 的暗模式设置

    好的 我知道这不应该是火箭科学 我似乎无法让黑暗模式工作 并且我已经阅读了几次文档 希望有人能找出我所缺少的东西 I have an named color in the asset catalog I set my plist mode
  • NSCocoaErrorDomain Code=257 文件无法打开,因为您无权查看它:FileManager attributeOfItem 在 iOS13 中返回 nil

    在 iOS 13 设备中 FileManager 在尝试获取文件大小时返回权限错误 do let attr try FileManager default attributesOfItem atPath my file path gt Ge
  • Xcode 11 Beta 5 - 模态仅触发一次

    我刚刚升级到 Xcode 11 Beta 5 并更新我的 SwiftUI 项目 在以前的版本中我想使用演示链接显示模式的组件 我遇到了和现在一样的问题 模态只显示一次 正如我在其他 SO 帖子中看到的那样 我认为这是一个错误 所以我尝试升级
  • ITMS-90334:通过 Xcode Cloud 构建时代码签名标识符无效

    我已经开始在 Swift 包中收集一小部分帮助程序代码以满足我自己的需要 如果我使用 Swift Package Manger 将此包包含在我的主项目中 并尝试使用 Xcode Cloud 构建它 我会收到以下错误 ITMS 90334 I
  • Vapor Xcode 项目中两个几乎相同的目标

    我想配置 Package swift 以便一个目标成为另一个目标的扩展 它们都应该共享一个文件夹中的相同代码 但对于 扩展 版本 还有一个额外的子文件夹 但我尝试使用的配置path因 重叠源 错误而失败 那么 如何使两个目标具有相同的源文件
  • 在 Swift 包管理器中添加对二进制目标的依赖项

    我想创建一个带有具有子依赖项的二进制目标的 Swift 包 由于二进制目标不支持开箱即用的子依赖项 因此我创建了一个包装器目标 该目标既依赖于二进制框架又依赖于所述的其他依赖项here https stackoverflow com a 6
  • 将 Swift Package 添加到自定义框架

    创建具有 SPM 依赖项的框架相当新鲜 因此 我创建了一个新的框架项目 添加了一些类 文件以及 SPM 依赖项 CocoaLumberjack 记录器 框架编译良好 当我寻找我计划嵌入到其他项目中的框架产品时 我看到它位于我的产品文件夹中
  • Swift 包管理器有本地缓存​​吗?

    每次我加载新包时 Xcode 都会从 Github 重新下载所有依赖项 而不是重用我已经为其他项目加载的一些依赖项 例如 我希望当我引用时 package name SwiftyJSON url https github com Swift
  • 如何从 Xcode 源代码管理导航器中删除 Swift 包依赖项

    我尝试了一个包 但决定不使用它 因此 我通过 项目设置 gt Swift Packagesm 删除了迄今为止有效的相应依赖项 关键是 相应的存储库仍然列在源代码管理导航器中 在我自己的项目下方 并且有一个名为 Swift Package D
  • 无法解析的标识符 NavigationButton 错误

    我是 swiftUI 的新手 只是想了解基础知识 我只是想创建一个新视图和一个将移动到该视图的按钮 当我使用下面的代码时 会出现错误 使用未解析的标识符 NavigationButton 尽管该错误是由 Xcode 生成的 import S
  • 如何向 SimulatorTrampoline 添加访问特定文件夹的权限

    macOS Catalina 提供了一种访问 拒绝文件和文件夹的新方法 突然 我拒绝了访问请求SimulatorTrampoline to my Documents文件夹 无法取回 Also 安全与隐私 gt 隐私 Full Disk Ac
  • Travis CI - Swift 包管理 - 结账已经存在?

    尝试在配置为使用 Swift Package Manager 的项目中设置示例项目并收到奇怪的错误 项目结构 MyProject Package swift MyProject etc Samples MySampleProject Swi
  • 复制 Xcode SPM 测试的资源文件

    我是 Swift 包管理器的新手 但随着它集成到 Xcode 11 中 是时候尝试一下了 我在新工作区中有一个新应用程序和 SPM 库 我有一个带有测试的工作库 并已成功将该库导入到应用程序中 我需要使用解析 json 文件的新测试来扩展
  • 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

    我正在使用新的开源 Swift Package Manager 并且能够下载文件 我希望管理器根据它检索到的包创建一个 开发环境 通过 Xcode 有人处理过这个吗 更新 正如其他答案中提到的 您现在可以使用以下命令生成 Xcode 项目文
  • Xcode 11 GM - 错误:访问构建数据库 - 磁盘 I/O 错误

    仅构建用于发布分发的 通用二进制框架 时遇到以下错误 在调试或发布模式下构建 非通用 方案时 可以使用相同的项目和设置 项目使用 Objective C 和 Xcode 11 GM 11A419c 现在 更新到 Xcode 11 GM Se
  • iOS 13 SwiftUI:应用程序在真实设备上启动时崩溃

    在 SwiftUI 和 Apple 的新测试版 macOS 10 15 iOS 13 和 Xcode 11 发布后 我开始开发基于新技术的应用程序 考虑到所有涉及的软件和系统都处于测试阶段 开发进展顺利 然而 当尝试在真实设备 iPhone
  • Xcode 13.1 bug 将依赖项编辑为本地

    刚刚升级到 Xcode 13 1 并通过单击具有一些依赖项的 Package swift 文件打开了一个 SPM 项目 在以前的版本中 我可以通过将包的本地克隆拖到项目导航器中来简单地编辑这些依赖项之一 然后 Xcode 将忽略签出的依赖项
  • Swiftlint 覆盖与 SPM 相关的项目设置

    我遇到了 swiftlint 自动更正的奇怪行为 我的项目使用通过 SPM 导入的库 但是当我运行 linter 时 它会更改如下设置 B4621A7323D0A90F00545ADE LibraryName in Frameworks i
  • 使用 CoreData 进行 Swift 包单元测试

    我有一堆快速文件 它们提供了 CoreData 之上的一些服务 我的单元测试运行良好 我决定使用 XCode 11 将所有这些移至 Swift 包中 单元测试不再运行 运行时错误为caught NSInternalInconsistency
  • 如何使用 Swift Package Manager 将 SwiftLint 与 iOS 应用程序集成?

    我正在使用 Xcode 11 beta 5 创建一个新的 iOS 应用程序 并且我想使用 Swift Package Manager 而不是 CocoaPods 来管理依赖项 使用 SwiftLint 和 CocoaPods 时的常见模式是

随机推荐

  • 为什么 Python 中对集合的处理不统一?

    Python 中集合和列表的处理方式不同 并且似乎没有统一的方法来处理这两者 例如 将一个项目添加到set是使用完成的add方法 并且对于list它是使用完成的append方法 我知道这背后有不同的语义 但也有共同的语义 并且通常与某些集合
  • 用于电子邮件的 JUnit 报告单页 XSLT

    我有一个 Junit 进程 每天晚上运行大量数据完整性测试 我希望它以格式良好的 HTML 电子邮件形式发送结果 问题是 JUnit 中内置的 HTML 格式化程序使用框架和外部样式表 因此它不适合电子邮件 普通格式化程序将结果埋在一堆原本
  • 未捕获的语法错误:计算时出现意外的标识符

    我有一些返回一个的代码Uncaught SyntaxError当我运行它但我不明白为什么 我尝试将其通过 JSHint 但无济于事 这是明显错误的代码 function compute expr x string var whatisx x
  • Java8计算地图中对象列表的平均值

    初始数据 public class Stats int passesNumber int tacklesNumber public Stats int passesNumber int tacklesNumber this passesNu
  • MongoDB:如何在 C# 中加载带有嵌套数组的集合?

    我有一个名为 服务器 的集合 其中包含以下文档 name West ip 123 123 123 123 channels name English port 1234 status 0 name Spanish port 1235 sta
  • 为什么带有空格的 cookie 值到达客户端时会带有引号?

    我是一名 NET 开发人员 开始涉足 Java 在 NET 中 我可以将 cookie 的值设置为其中包含空格的字符串 new HttpCookie myCookieName my value 当我在客户端 JavaScript 读取该值时
  • 批处理文件重复以前的工作程序

    我需要有关批处理脚本的帮助 它运行得很好 但后来当我想运行它时 它不断重复我之前显示的结果 例如 我上周执行了一个名为运行 echo 程序上周首先运行 的程序 当我今天尝试通过 echo 这是今天 运行它时 它运行并显示之前的结果 PS 代
  • 从 Composer 在 dataproc 集群上执行 bash 脚本

    我想在使用简单的 shell 脚本创建集群后将 jar 添加到特定位置的 dataproc 集群中 创建 dataproc 集群后 我想自动执行此步骤以从 Composer 运行 下一步是执行 bash 脚本 该脚本会将 jar 添加到 d
  • jinja 2 库中的语法错误

    为了在 suse Linux 服务器上运行 IPython Notebook 我需要安装jinja2图书馆 pip 3 2 install jinja2 安装打印语法错误 https gist github com anonymous 62
  • TSLint 不适用于 CRA 和 TypeScript

    我花了几个小时绞尽脑汁试图为使用 create react app 创建的 TypeScript 项目启用 linting The wmonk create react app typescript https github com wmo
  • 从 vuex 存储访问 $vuetify 实例属性

    我正在使用vuetify并想改变主题vuex存储使用 vuetify https vuetifyjs com en style theme实例但我收到这个错误Cannot set property theme of undefined 这是
  • JDBCPreparedStatement - 使用相同的参数,可能吗?

    我正在使用 插入或更新 查询 如下所示 String sql INSERT INTO servlets path applicationId startTime numOfRequests totalResponseTime totalBy
  • WPF 中的 Icollectionview 排序和分组

    我在 WPF 中创建了一个 listview 控件并成功完全绑定Icollectionview的对象ObservableCollection 我的列表视图列是动态创建的 我必须对列表视图进行排序和分组 但它无法正常工作 我的代码如下 pri
  • 使用 iTextSharp 4.1.6.0 对 PDF 进行数字签名

    是否可以使用 iTextSharp 4 1 6 0 对 PDF 进行数字签名 如果是的话 是否有一些 C 示例文档 是的 可以使用该版本进行签名 有关于如何签名的说明 互联网档案馆是您的friend https web archive or
  • 存储此指针以便在 WndProc 中使用的最佳方法

    我有兴趣知道存储的最佳 常见方法this指针用于在WndProc 我知道有几种方法 但据我了解 每种方法都有自己的缺点 我的问题是 生成此类代码有哪些不同的方法 CWindow WndProc UINT msg WPARAM wParam
  • 在 ES6 模板文字中插入 if 语句

    我有一个简单的 ajax 请求返回一些数据 然后插入到模板文字中 我想知道是否可以在模板中插入 if 语句 本质上是如果 json 对象有第五种颜色 则添加另一行代码 ajax url http localhost 8888 ColourC
  • 边缘高斯模糊截止

    我正在为 Android 上的绘图程序开发 svg 导出实用程序 我遇到一个问题 后面的模糊被截断超过了形状边界 看起来我需要调整 viewBox 的大小或增加边距或其他东西 有谁知道最好的方法吗 测试文件的url是here http ww
  • 致命错误:未捕获错误:函数名称必须是 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php:555 堆栈跟踪中的字符串:#0

    我在从 XAMPP localhost magento 访问 Magento 文件夹时遇到这些错误 致命错误 未捕获错误 函数名称必须是字符串 C xampp htdocs em0126 app code core Mage Core Mo
  • ng build 命令无法通过 jenkins buildexecute shell 工作

    在詹金斯构建执行区域中我输入了这些命令 cd var lib jenkins workspace test ng serve 这是屏幕截图 我收到这样的错误 cd var lib jenkins workspace test ng serv
  • 复制 Xcode SPM 测试的资源文件

    我是 Swift 包管理器的新手 但随着它集成到 Xcode 11 中 是时候尝试一下了 我在新工作区中有一个新应用程序和 SPM 库 我有一个带有测试的工作库 并已成功将该库导入到应用程序中 我需要使用解析 json 文件的新测试来扩展