py2app: как я могу запускать тесты с помощью встроенного интерпретатора Python?

Я использую py2app для упаковки своего приложения. Несколько быстрых заметок о моем приложении:

  • Он использует специальный исполняемый файл Python (то есть несистемный Python), который py2app включает в комплект.
  • Я явно исключаю несколько пакетов из site-packages.zip, используя функцию рецепта py2app.

В прошлом у меня иногда возникали проблемы с набором приложений, потому что я забывал исключить определенные пакеты из site-packages.zip. Это было легко исправить, как только я обнаружил проблему, но не сразу обнаружил ее, потому что рассматриваемые пакеты в основном работали. Проблема проявилась только после тестирования особых случаев, в которых используются определенные подмодули в проблемной зависимости.

Чтобы избежать подобных проблем в будущем, я хочу запустить набор тестов, используя тот же самый интерпретатор, который py2app включает в свой комплект. Чтобы это работало, мне нужна правильная настройка среды, которая каким-то образом автоматически создается при запуске приложения (включая PYTHONPATH, DYLD_LIBRARY_PATH и т. д.).

Простое использование ./dist/MyBundle.app/Contents/MacOS/python для запуска моих тестов, похоже, не помогает. Каков рекомендуемый метод запуска тестов на самом полностью собранном пакете приложений?


person Stuart Berg    schedule 01.11.2013    source источник
comment
Прошло некоторое время с тех пор, как я использовал py2app, но я помню, что info.plist приложения содержит кучу материалов для среды Python.   -  person Brad Allred    schedule 02.11.2013
comment
Что вы используете для запуска тестов? Кажется, вы могли бы просто создать пользовательскую упакованную версию своего приложения, которая вызывает тестовую точку входа, а не запускать ваше приложение, как обычно...   -  person Nicholas Riley    schedule 04.11.2013
comment
Как вам удалось заставить py2app связать несистемный исполняемый файл? Я безуспешно пытаюсь добиться этого: stackoverflow.com/questions/34845112/   -  person Pyderman    schedule 18.01.2016


Ответы (1)


Вы можете использовать параметр --extra-scripts, представленный в py2app 0.7, чтобы включить второй скрипт, который запускает тест в пакете приложения, и использовать его для запуска тестов.

Я согласен, что было бы неплохо иметь возможность запускать сценарии в среде приложения. Не могли бы вы сообщить об этом в репозитории py2app по адресу https://bitbucket.org/ronaldoussoren/py2app?

person Ronald Oussoren    schedule 07.11.2013
comment
Спасибо, @Ronald!. Опция --extra-scripts подойдет для моих целей. По запросу я просто добавил проблему в систему отслеживания проблем py2app для более общего решения. - person Stuart Berg; 07.11.2013