2011-08-15 47 views
12

我沒有從命令行運行鼻子測試,而是使用測試運行器爲所有測試設置了一些東西,包括連接到本地測試實例MongoDB的。鼻子文檔似乎只表明如何通過命令行或位於主目錄中的配置文件傳遞選項。有沒有辦法在使用腳本運行測試時傳遞選項,例如--with-xunit?將選項傳遞給Python測試腳本中的鼻子

回答

8

像這樣:

import nose 

argv = ['fake', '--with-xunit'] 
nose.main(argv=argv) 

必須加上「假」的說法站在對可執行文件的名稱,如DBW的答案描述。

+0

試過這個,但沒有生成報告 –

+0

@Matt:你確定嗎?因爲我在我的項目中使用了相同的代碼片段,並且現在我只是改變了生成'xunit'報告,並且它已經在'nosetests.xml'下成功生成了!也許我失去了一些東西... – mouad

+0

是啊,我先試了一下,沒有生成報告。嘗試命令行,我得到了一個。對不起: -/ –

16

鼻子做了一些鬼鬼祟祟的第一個參數,所以它不被解析。我的鼻子包裝確實是這樣的:

import nose 
import sys 

argv = sys.argv[:] 
argv.insert(1, "--with-xunit") 
nose.main(argv=argv) 

作爲獎勵,這可以讓你的程序的客戶端使用鼻參數來控制其行爲!

+0

它的工作原理。謝謝。 – KobeJohn

+1

我相信這是更正確的答案。關於鼻子被第一個論證偷偷摸摸的觀點是非常重要的一點。 – munk

+5

鼻子不是鬼鬼祟祟的:)關鍵是'argv'列表總是以可執行文件的名字開頭。因此,當你說'argv = ['--with-xunit']'時,你把可執行文件的名字設置爲'--with-xunit',並且不傳參數。爲了解決這個問題,使用'argv = ['fake','--with-xunit']' – Timur

相關問題