2016-12-20 2 views
4

В одном из моих классов XCTests мне нужно загрузить изображение из каталога активов, чтобы протестировать логику обработки изображений. Однако, похоже, использование UIImage(named: "imageName") возвращает nil в целевую аудиторию.Включая каталог активов в целевые задания

Я проверил целевое членство в тестировании в своем каталоге активов, есть ли что-нибудь еще, что я должен сделать, чтобы включить чтение изображений из моих классов XCTest?

ответ

0

Согласно документации, вы должны добавить их во время выполнения.

Если ваши тесты используют файлы фондовооруженности данных, изображений и так далее, они могут быть добавлены в тестовом пучке и доступ во время выполнения с помощью API-интерфейсов NSBundle . Используя +[NSBundle bundleForClass:] с вашим тестовым классом, вы получите , чтобы получить правильный пакет для извлечения активов. Дополнительную информацию см. NSBundle Class Reference.

В Swift, это было бы что-то вдоль линий:

let appBundle = Bundle(for: type(of: MyClass) as! AnyClass) 
1

Ответ на @mylovemhz является правильным, но неполным. Вы должны ссылаться на свертке:

Swift 3:

UIImage(named: "imageName", in: Bundle(for: MyTestClass.self), compatibleWith: nil) 

Кроме того, убедитесь, что ваш актив включается в тех же целях, что и ваш тестовый класса.