Запускать модульные тесты с Nose в среде Python, такой как Autodesk Maya? - PullRequest
6 голосов
/ 12 марта 2009

Я бы хотел начать создавать модульные тесты для моих скриптов Maya. Эти сценарии должны выполняться в среде Maya и полагаться на пространство имен модуля maya.cmds.

Как я могу запустить тесты Nose внутри работающей среды, такой как Maya?

1 Ответ

15 голосов
/ 13 марта 2009

Используйте исполняемый файл mayapy, включенный в вашу установку maya, вместо стандартного исполняемого файла python.

Для этой работы вам нужно запустить нос программно. Создайте файл python с именем runtests.py и поместите его рядом с тестовыми файлами. В него включите следующий код:

import os
os.environ['PYTHONPATH'] = '/path/to/site-packages'

import nose
nose.run()

Поскольку mayapy загружает свой собственный pythonpath, он не знает о каталоге site-packages, где находится nose. os.environ используется для установки этого вручную в скрипте. При желании вы также можете установить это как системную переменную среды.

Из командной строки используйте приложение mayapy для запуска сценария runtests.py:

/ path / to / mayapy.exe runtests.py

Вам может потребоваться импортировать maya.standalone в зависимости от того, что делают ваши тесты.

import maya.standalone
maya.standalone.initialize(name='python')
...