2

Я видел упоминания только об испытаниях только при использовании диспетчера пакетов Swift, но не смог заставить их работать. Например:Зависимости, зависящие только от тестирования при использовании диспетчера пакетов 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

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

Указатели на рабочие примеры были бы оценены.

ответ

5

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

Из описания фиксации'S:

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

+0

Счастливое лицо и печальное лицо;). Спасибо Вадиму. Вы участвуете в разработке? Любая идея, когда это вернется? –

+0

@ChrisPrince Нет, я не знаю, я не знаю, когда это вернется. Я сам задавался вопросом, что случилось с этой особенностью. –

1

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

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