0

我在命令行上使用“setup.py install”安装了nose,我能够运行“nosetests”,并且任何与testMatch 正则表达式匹配的python 文件都会被拾取并在%python home%\Scripts 目录中自动进行测试。现在我想让鼻子使用我的铁 Python 文件,如何在 %Iron Python 主目录中安装鼻子?我注意到我的 Iron Python 主目录甚至没有 Scripts 文件夹。如果我尝试使用 Iron python 代码运行“nosetests”,它会抛出各种异常,例如。没有名为 clr 的模块。

有人用鼻子和铁蟒蛇吗?如果是,请指导我。一整天以来,我一直在为此苦苦挣扎,目前我唯一的解决方法是在我的 IronPython 代码中添加以下内容:

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

这是在铁蟒文件中使用鼻子的唯一方法吗?

如果没有别的办法,那我想知道nose的几个插件怎么用?特别是覆盖插件?我为 python2.6 安装了它,但如何使它适用于 ironpython?

我问的原因是因为使用 python ,只需调用命令行就可以轻松使用插件,但使用 IronPython 我不知道如何使其工作。

4

2 回答 2

0

您的解决方案实际上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 可执行文件执行脚本。

于 2010-07-09T13:30:56.700 回答
0

我一直在尝试运行使用鼻子插件的 sqlalchemy 测试套件。因此,如果有人试图使用插件在 Ironpython 上运行,这可能会很有用。

这往往不能在 ipy 上透明地工作,因为 setuptools 在 Ironpython 上不太工作。

经过一番挖掘,我找到了用于手动注册插件的nose init .py 指令——本质上,导入插件类(它是nose.plugins.Plugin 的子类),并将其添加到main() 的调用中。

这是我的脚本最终的样子:

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()])

希望这对某人有帮助!

于 2010-07-11T13:51:00.210 回答