将XCTest导入动态框架 [英] Import XCTest into a dynamic framework

查看:148
本文介绍了将XCTest导入动态框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个创建动态框架的项目.在框架本身内部,而不是框架的测试内部,我具有以下文件:

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
}

它们是用来断言Clojure正在引发异常的实用方法.这是为了弥补缺少的Swift的XCTAssertThrows().

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

当然,我必须导入XCTest框架才能使用XCTAssert *方法.但是我无法实现. 我不断收到一个错误消息,指出该名称的框架不可用.

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?

Do you have any idea how to successfully import XCTest?

非常感谢您

推荐答案

我遇到了类似的问题,并使用了

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

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

1: Add to Other Linker Flags:

-weak_framework XCTest -weak-lswiftXCTest

-weak_framework XCTest -weak-lswiftXCTest

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

2: Add to Framework Search Paths:

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

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

现在,动态框架可以导入XCTest.

Now dynamic framework can import XCTest.

旁注:我也想写类似的东西.我最终创建了用于在Swift中进行单元测试错误处理的微型框架,也许有人会发现它很有用.可与CocoaPods和Carthage一起使用.

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.

这篇关于将XCTest导入动态框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆