Зависимости только для тестирования при использовании Swift Package Manager

Я видел упоминания зависимостей только для тестирования при использовании диспетчера пакетов Swift, но не мог заставить их работать. Например:

https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160104/005409.html https://github.com/apple/swift-package-manager/pull/74 http://blog.krzyzanowskim.com/2016/08/09/package-swift-manual/#testDependencies

Я хочу, чтобы зависимость использовалась в моих тестах XCtest (например, для конкретной цели), но не применялась в развернутом пакете.

Указатели на рабочие примеры приветствуются.


person Chris Prince    schedule 30.12.2016    source источник


Ответы (2)


В настоящее время в диспетчере пакетов Swift отключена функция «Только тестовые зависимости». Первоначально он был реализован, но был удален в этой фиксации.

Из описания коммита:

Удалить testDependencies из PackageDescription. Эта функция должна была поддерживать зависимости только для корневого пакета, но в какой-то момент она перестала работать, однако API все еще оставался открытым. Этот патч удаляет общедоступный API. Это действительная и желаемая функция, которая должна вернуться после того, как она пройдет надлежащий обзор быстрой эволюции.

person Vadim Eisenberg    schedule 31.12.2016
comment
Счастливое лицо и грустное лицо;). Спасибо Вадим. Вы участвуете в разработке? Есть идеи, когда это вернется? - person Chris Prince; 01.01.2017
comment
@ChrisPrince Нет, я не знаю, когда это вернется. Мне самому было интересно, что случилось с этой функцией. - person Vadim Eisenberg; 02.01.2017

@Vadim ответ правильный, в настоящее время нет официального API для тестовых зависимостей, но есть обходные пути. ReactiveSwift, например, использует для тестов альтернативный Package.swift. что они перезаписывают исходный при выполнении тестов на CI (см. их файл конфигурации travis). Это не изящно, но хорошо, оно выполняет свою работу, пока SPM не вернет эту крайне необходимую функцию.

person Lvsti    schedule 07.01.2017