2016-12-17 2 views
1

Я пишу XCode Source Editor Extension, и я хотел бы добавить некоторые тесты, чтобы я мог быстрее развиваться.Как протестировать расширение редактора 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

Вы можете проверить, как выполняются здесь тесты единиц SwiftInitializerGenerator. Тестируемый код разделяется между двумя целями. И никаких тестируемых внутри тестов. Попытайтесь избавиться от любой зависимости XcodeKit от вашего класса. Вероятно, теперь это единственный способ для тестов на расширение

Смежные вопросы