我正在编写XCode源代码编辑器扩展,我想添加一些测试,以便我可以更快地开发。
我的设置是
MyContainerApplication
- SourceEditorExtension
- SourceEditorCommand.swift
- MyClass.swift我想测试一下MyClass.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看起来除了SourceEditorExtension之外,XcodeKit不能导入到其他地方,即使是在测试中也不能。
所以我的问题是--有没有其他方法来测试源代码编辑器扩展?
发布于 2017-01-14 23:40:23
你可以在这里查看单元测试是如何完成的,SwiftInitializerGenerator。可测试代码在两个目标之间共享。并且在测试中没有@testable。尝试在你的类中摆脱对XcodeKit的任何依赖。现在,它可能是扩展测试的一种方式。
发布于 2019-01-02 04:08:28
确保您的MyClass.swift同时设置为SourceEditorExtension和MyContainerApplicationTests。
https://stackoverflow.com/questions/41202944
复制相似问题