我正在编写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
看起来XcodeKit无法在SourceEditorExtension中的任何地方导入,甚至在测试中也是如此。
所以我的问题是 - 是否有其他方法来测试源编辑器扩展?
答案 0 :(得分:0)
您可以在此处查看单元测试的完成情况SwiftInitializerGenerator。可测试代码在两个目标之间共享。并且没有@testable内部测试。尝试摆脱类中XcodeKit的任何依赖。可能现在它是扩展测试的一种方式
答案 1 :(得分:0)
确保将MyClass.swift
设置为SourceEditorExtension
和MyContainerApplicationTests
。