我在命令行上使用'nosetests‘安装了nose,我能够运行’nosetest‘,并且任何与testMatch正则表达式匹配的python文件都会被拾取,并在%python home%\Scripts目录中自动执行测试。现在我想让nose处理我的iron Python文件,如何在%Iron Python home%目录中安装nose?我注意到我的Iron Python Home目录甚至没有Scripts文件夹。如果我尝试用iron python代码运行'nosetests‘,它会抛出所有类型的异常。没有名为clr的模块。
有没有人用鼻子配铁蟒?如果有,请指点一下。我已经在这个问题上挣扎了一整天,目前我唯一的解决办法是在我的IronPython代码中添加以下内容:
import nose
nose.main(argv=['<arguments>'])这是在iron python文件中使用nose的唯一方法吗?
如果没有其他方法,那么我想知道如何使用nose的几个插件?尤其是覆盖插件?我为python2.6安装了它,但是如何让它在ironpython上工作呢?
我问这个问题的原因是,在python中,只需调用命令行就可以很容易地使用插件,但在IronPython中,我不知道如何让它工作。
发布于 2010-07-09 21:30:57
您的解决方案实际上就是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-11 21:51:00
经过一番挖掘,我发现了用于手动注册插件的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()])希望这对某些人有帮助!
https://stackoverflow.com/questions/3198500
复制相似问题