Как использовать нос с IronPython? - PullRequest
0 голосов
/ 08 июля 2010

Я установил нос с помощью 'setup.py install' в командной строке, я могу запустить 'носовые тесты', и любое соответствующее Python-файлу соответствие регулярному выражению testMatch подобрано и тесты автоматизированы в% python home% \ Scriptsкаталог.Теперь я хочу, чтобы нос работал с моими железными файлами Python, как мне установить нос в каталог% Iron Python home%?я заметил, что мой домашний каталог Iron Python даже не имеет папки Scripts.Если я пытаюсь запустить 'тестирование носа' с помощью кода с железным питоном, он выдает все виды исключений, например.нет модуля с именем clr.

Кто-нибудь использует нос с железным питоном?если да, пожалуйста, направьте меня.Я боролся с этим целый день, в настоящее время мой единственный обходной путь - добавить следующее в мой код IronPython:

 import nose 
 nose.main(argv=['<arguments>'])

- это единственный способ использовать нос в файлах железного питона?

если нет другого пути, то я хотел бы знать, как использовать несколько плагинов, которые есть у носа?особенно плагин покрытия?я установил его для python2.6, но как заставить его работать для ironpython?

Причина, по которой я спрашиваю, состоит в том, что с python легко использовать плагины, просто вызывая командную строку, но с IronPython я не знаю, как заставить его работать.

Ответы [ 2 ]

0 голосов
/ 11 июля 2010

Я пытался запустить набор тестов sqlalchemy, который использует плагин и . Так что это может быть полезно, если кто-то пытается запустить плагин в Ironpython с помощью плагинов.

это имеет тенденцию не работать прозрачно на ipy, потому что setuptools не совсем работает на ironpython.

после небольшой копки я нашел нос init .py инструкции по регистрации плагина вручную - по сути, импортируем класс плагина (который является подклассом nose.plugins.Plugin) и добавляем его в вызов основной ().

вот как в итоге выглядел мой сценарий:

import sys, os
#import ironclad #not needed. i think.
sys.path.append(r'C:\Python26\lib')
#now load Jeff Hardys sqlite dll which is in sqlite folder (sqlite not supported on ipy)
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)),'sqlite'))
import clr
clr.AddReference('IronPython.SQLite')
#load plugin
from sqlalchemy.test.noseplugin import NoseSQLAlchemy
from nose import main
if __name__ == '__main__':
    main(addplugins=[NoseSQLAlchemy()])

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 09 июля 2010

Ваше решение на самом деле все nosetests делает:

#!/usr/bin/env python

from nose import main

if __name__ == '__main__':
    main()

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

>>>import sys
>>>sys.path.append(r'C:\Python26\lib')

И вам нужно убедиться, что вы выполняете свой скрипт с ipy.exe, а не с исполняемым файлом Python вашей системы.

...