如何测试Xcode源代码编辑器扩展?

如何测试Xcode源代码编辑器扩展?,xcode,xctest,Xcode,Xctest,我正在编写XCode源代码编辑器扩展,我想添加一些测试,以便更快地开发 我的设置是 MyContainerApplication - SourceEditorExtension - SourceEditorCommand.swift - MyClass.swift 我想测试一下我的class.swift。MyContainerApplication对SourceEditorExtension具有目标依赖关系 因此,我使用MyContainerApplication集作为主机

我正在编写XCode源代码编辑器扩展,我想添加一些测试,以便更快地开发

我的设置是

MyContainerApplication
  - SourceEditorExtension
    - SourceEditorCommand.swift
    - MyClass.swift
我想测试一下我的class.swift。MyContainerApplication对SourceEditorExtension具有目标依赖关系

因此,我使用MyContainerApplication集作为主机应用程序创建单元测试

在我的测试中,我可以调用:

@testable import MyContainerApplication

class Test: XCTestCase {

    func testSomething() {

         let c = MyClass()
    }
}
但是XCode说找不到MyClass,这是有道理的,因为它不包含在HostApplication中,而是包含在SourceEditorExtension中。我也不能打电话

@testable import SourceEditorExtension
因为它不是一个模块

我不能直接将
MyClass.swift
添加到我的测试目标或主机应用程序目标,因为它使用XcodeKit框架。我将得到一个错误:

XcodeKit module not found
看起来XcodeKit只能在SourceEditorExtension中导入,即使在测试中也是如此


所以我的问题是-是否有其他方法来测试源代码编辑器扩展

您可以在这里检查单元测试是如何完成的。可测试代码在两个目标之间共享。没有@testable内部测试。试着摆脱类中对XcodeKit的任何依赖。现在它可能是扩展测试的一种方法

确保您的
MyClass.swift
同时设置为
SourceEditorExtension
MyContainerApplicationTests