2010-07-07 16 views
0

我在命令行中使用'setup.py install'安裝了鼻子,我可以運行'nosetests',並且任何匹配testMatch正則表達式的python文件都被拾取,並且測試在%python home%\ Scripts目錄中自動執行。現在我想讓鼻子與我的Python Python文件一起工作,我如何在%Iron Python home%目錄上安裝鼻子?我注意到我的Iron Python Home目錄甚至沒有Scripts文件夾。 如果我嘗試運行'nosetests'與鐵python代碼,它會拋出各種例外 例如。沒有名爲clr的模塊。如何使用IronPython的鼻子?

是否有人用鐵蟒鼻子?如果是,請指導我。我一直在這個掙扎,因爲一整天, 目前我唯一的解決方法已添加以下在我的IronPython代碼:

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

是這是去鐵Python文件使用鼻子的唯一途徑?

如果沒有其他方法,那麼我想知道如何使用鼻子有的幾個插件?尤其是覆蓋率插件?我爲python2.6安裝了它,但是如何使它適用於ironpython?

我問的原因是因爲在python中,通過調用命令行很容易使用插件,但使用IronPython我不知道如何使它工作。

回答

0

你的解決方案實際上是所有nosetests做:

#!/usr/bin/env python 

from nose import main 

if __name__ == '__main__': 
    main() 

你要確保你把你的系統的Python lib添加到路徑爲它找到鼻子擴展:

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

你需要確保你的腳本是ipy.exe而不是你的系統的Python可執行文件。

+0

我做到了,但我想nosetests --cover-html的工作,這並不工作:(事實上沒有參數工作,-V不給鼻子的版本,-W(不讓我指定工作目錄我想用下面的命令做一下命令: > nosetests --cover-html – Gokul 2010-07-09 13:51:38

0

我一直在試圖運行sqlalchemy測試套件,它使用了一個插件。所以,如果有人試圖用插件運行Ironpython,這可能會很有用。

這往往不會透明地在ipy上工作,因爲setuptools在Ironpython上不太適用。

有點陷後,我發現鼻子初始化的.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()]) 

希望這可以幫助別人!