如何使用鼻子与铁蟒?

2024-10-02 14:24:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是设置.pyinstall'在命令行上,我可以运行'nosetests',任何匹配testMatch正则表达式的python文件都会被提取出来,并在%python home%\Scripts目录中自动执行测试。现在我想让nose使用我的iron Python文件,如何在%iron Python home%目录上安装nose?我注意到我的IronPython主目录甚至没有脚本文件夹。 如果我尝试用铁质python代码运行'nosetests',它会抛出各种异常 例如,没有名为clr的模块。在

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

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

这是在iron python文件中使用nose的唯一方法吗?在

如果没有其他方法,那么我想知道如何使用nose的几个插件?尤其是覆盖插件?我为python2.6安装了它,但是如何使它适用于ironpython呢?在

我问这个问题的原因是,对于python,只需调用命令行就可以很容易地使用插件,但是对于IronPython,我不知道如何让它工作。在


Tags: 文件方法命令行目录脚本文件夹插件scripts
2条回答

我一直在尝试运行sqlalchemy测试套件,它使用nose一个插件。因此,如果有人试图用插件在ironpython上运行nose,这可能会很有用。在

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

经过一段时间的研究,我找到了noseinit.py指令来手动注册一个插件——本质上,导入plugin类(它的子类鼻子.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()])

希望这对某人有帮助!在

您的解决方案实际上是^{}的全部功能:

#!/usr/bin/env python

from nose import main

if __name__ == '__main__':
    main()

您需要确保将系统的Python lib添加到路径中,以便查找nose扩展:

^{pr2}$

您需要确保使用ipy.exe执行脚本,而不是系统的Python可执行文件。在

相关问题 更多 >