Почему создание экземпляра UIFont в модульном тесте iphone вызывает сбой?

Я просто хотел следить за тем, что я нашел, работая с Python 2.7 на Centos 6. Добавление пакетов_данных или data_files, как упоминалось выше, не помогло мне. Я добавил MANIFEST.IN с файлами, которые я хотел, которые помещали файлы, отличные от python, в tarball, но не устанавливали их на целевой машине через RPM.

В конце концов, мне удалось получить файлы в моем решении, используя «параметры» в setup / setuptools. Файлы параметров позволяют изменять различные разделы файла spec из файла setup.py. Как показано ниже.

from setuptools import setup


setup(
    name='theProjectName',
    version='1',
    packages=['thePackage'],
    url='',
    license='',
    author='me',
    author_email='me@email.com',
    description='',
    options={'bdist_rpm': {'install_script': 'filewithinstallcommands'}},
)

file - MANIFEST.in:

include license.txt

file - filewithinstallcommands:

mkdir -p $RPM_BUILD_ROOT/pathtoinstall/
#this line installs your python files
python setup.py install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
#install license.txt into /pathtoinstall folder
install -m 700 license.txt $RPM_BUILD_ROOT/pathtoinstall/
echo /pathtoinstall/license.txt >> INSTALLED_FILES
17
задан Scotty Allen 6 November 2009 в 18:58
поделиться

4 ответа

Это не очень хорошо, но Apple Testing Kit разбивает модульные тесты на две отдельные категории:

  • Логические тесты

    Эти тесты проверяют правильность работы вашего кода в чистых помещениях.

  • Тесты приложений

    Эти тесты проверяют функциональность вашего кода в работающем приложении.

Похоже, существует много кода, связанного с пользовательским интерфейсом, который не может быть запущен в случае «логического теста». Больше информации о тестах логики и тестах приложений здесь.

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/UnitTesting/01-Unit-Test_Overview/overview.html

9
ответ дан Frizlab 6 November 2009 в 18:58
поделиться

Выберите цель «Unit Unit Test» в разделе «Targets» в списке проектов / целей и в разделе «General» выберите приложение «Хост» в качестве основного приложения со шрифтами.

Это решило проблему для меня.

0
ответ дан nemesis 6 November 2009 в 18:58
поделиться

Вы пробовали это на устройстве? Кажется, я помню, что вы можете включать UIKit в тесты только при запуске на устройстве, а не против симулятора ...

1
ответ дан Kendall Helmstetter Gelner 6 November 2009 в 18:58
поделиться

Я вижу именно эту проблему с 3.2 (и 3.1.3). Я видел это на двух разных машинах, поэтому не думаю, что мой SDK сломан.

Я создал новый проект, основанный на представлении iPhone, и добавил модульный тест и один тестовый пример.

Это настроено как логическая проверка.

Консольный вывод выглядит следующим образом:

Test Case '-[TestTests testTests]' started.
/Developer/Tools/RunPlatformUnitTests.include: line 415: 21141 Trace/BPT trap               "${THIN_TEST_RIG}" "${OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}"
/Developer/Tools/RunPlatformUnitTests.include:451: error: Test rig  '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk/Deve loper/usr/bin/otest' exited abnormally with code 133 (it may have crashed).
Command /bin/sh failed with exit code 1

Если я настрою модульный тест для отладки, я могу увидеть сбой со следующей трассировкой стека:

#0  0x00342d51 in __HALT 
#1  0x002947c7 in _CFRuntimeCreateInstance
#2  0x00b8441e in GSFontCreateWithName
#3  0x028c8f31 in +[UIFont systemFontOfSize:]

Я вижу точку Кендалла (материал UIKit может работать только на device), но, похоже, это нигде не очень хорошо документировано.

2
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: