热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将XCTest导入动态框架-ImportXCTestintoadynamicframework

IhaveaprojectwhereIhavecreatedadynamicframework.Insidetheframeworkitself,notthefram

I have a project where I have created a dynamic framework. Inside the framework itself, not the framework's tests, I have the following file:

我有一个项目,我已经创建了一个动态框架。在框架内部,而不是框架的测试,我有以下文件:

import Foundation
import XCTest


public func assertThrowsException(function: () throws -> Void) {
    XCTAssertTrue(doesItThrowException(function))
}


public func assertDoesNotThrowsException(function: () throws -> Void) {
    XCTAssertFalse(doesItThrowException(function))
}


private func doesItThrowException(function: () throws -> Void) -> Bool {
    do {
        let _ = try function()
    } catch {
        return true
    }
    return false
}

They are utility methods to assert that a clojure is raising an exception. It's to make up for the missing Swift's XCTAssertThrows().

它们是用于断言clojure引发异常的实用方法。这是为了弥补失踪的Swift的XCTAssertThrows()。

Of course I have to import the XCTest framework to be able to use XCTAssert* methods. But I am not able to achieve it. I keep receiving an error that a framework with that name is not available.

当然,我必须导入XCTest框架才能使用XCTAssert *方法。但我无法实现它。我一直收到一个错误,即该名称的框架不可用。

Do you have any idea how to successfully import XCTest?

你知道如何成功导入XCTest吗?

Thank you very much

非常感谢你

1 个解决方案

#1


15  

I've run into similar issue and used build settings from Nimble project. To fix issue:

我遇到了类似的问题并使用了Nimble项目的构建设置。解决问题:

1: Add to Other Linker Flags:

1:添加到其他链接器标志:

-weak_framework XCTest -weak-lswiftXCTest

-weak_framework XCTest -weak-lswiftXCTest

2: Add to Framework Search Paths:

2:添加到框架搜索路径:

$(DEVELOPER_FRAMEWORKS_DIR) $(PLATFORM_DIR)/Developer/Library/Frameworks

$(DEVELOPER_FRAMEWORKS_DIR)$(PLATFORM_DIR)/ Developer / Library / Frameworks

Now dynamic framework can import XCTest.

现在动态框架可以导入XCTest。

Sidenote: I also wanted to write something similar. I've ended up creating mini-framework for unit testing error handling in Swift, maybe someone will find it useful. Works both with CocoaPods and Carthage.

旁注:我也想写类似的东西。我最终在Swift中为单元测试错误处理创建了迷你框架,也许有人会发现它很有用。适用于CocoaPods和Carthage。


推荐阅读
  • 本文探讨了在iOS项目中导入MKNetworkKit库时遇到的常见问题及其解决方案。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
author-avatar
我爱你800916
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有