Xcode 10: загрузить тот же XML-файл в цель проекта и цель модульного теста - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь загрузить один и тот же XML-файл в цель проекта и цель модульного тестирования.

Кажется, похожая проблема, как этот вопрос: Xcode. Ресурсы изображений, добавленные к цели теста, не копируются в комплект тестов

В цели проекта этот код работал нормально. Мне просто нужно добавить файл «xmlString.xml» в «Копирование файлов» (см. Изображение 1).

func parseFile() {
   let stringPath = Bundle.main.path(forResource: "xmlString", ofType: "xml")
   let url = NSURL(fileURLWithPath: stringPath!)
   ...
}

Image1

Если я запускаю код, отсекаемый в целевом модульном тесте, я получаю сообщение об ошибке, поскольку файл .xml не может быть найден. Я попытался добавить файл .xml в «Копирование комплекта ресурсов», но безуспешно (см. Изображение 2).

image 2

Единственный способ заставить его работать - это использовать абсолютный путь

func parseFile() {
   let stringPath: String? = "/Users/.../Documents/Git/.../.../.../.../xmlString.xml"
   let url = NSURL(fileURLWithPath: stringPath!)
   ...
}

Есть ли способ использовать функцию Bundle.main.path(forResource: "xmlString", ofType: "xml") вместо абсолютного пути?

Заранее спасибо!

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете получить пакет для своего проекта, например:

let projectBundle = Bundle(for: AnyClassInMyProject.self)

где вы заменяете AnyClassInMyProject именем фактического класса в вашем проекте.

Затем вы можете получить путь к вашему XML-файлу следующим образом:

let stringPath = projectBundle.path(forResource: "xmlString", ofType: "xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...