doctest 基本API

2022-08-03 17:06 更新

函數(shù)testmod()和testfile()提供了一個簡單的界面,文檔測試,應(yīng)該是足夠了最基本的用途。有關(guān)這兩個函數(shù)的不太正式的介紹,請參見簡單用法:檢查文檔字符串和簡單用法中的示例:檢查文本文件中的示例。

doctest.testfile(filename[, module_relative][, name][, package][, globs][, verbose][, report][, optionflags][, extraglobs][, raise_on_error][, parser][, encoding])

除文件名以外的所有參數(shù)都是可選的,并應(yīng)以關(guān)鍵字形式指定。

在名為filename的文件中測試示例。返回(failure_count, test_count)。

可選參數(shù)module_relative指定應(yīng)如何解釋文件名:

  • 如果module_relative是True(缺省值),則filename指定一個與操作系統(tǒng)無關(guān)的模塊相對路徑。默認(rèn)情況下,這個路徑是相對于調(diào)用模塊的目錄;但是如果指定了package參數(shù),那么它與該包相關(guān)。為了確保OS獨立性,文件名應(yīng)該使用/字符來分隔路徑段,并且可能不是絕對路徑(即它可能不以開頭/)。
  • 如果module_relative是False,則filename指定一個OS特定的路徑。路徑可以是絕對的或相對的; 相對路徑相對于當(dāng)前工作目錄被解析。

可選參數(shù)名稱給出測試的名稱; 默認(rèn)情況下,或者None,os.path.basename(filename)被使用。

可選參數(shù)包是一個Python包或一個Python包的名稱,其目錄應(yīng)該用作模塊相關(guān)文件名的基本目錄。如果未指定包,則調(diào)用模塊的目錄將用作模塊相關(guān)文件名的基本目錄。如果module_relative是指定包,那是錯誤的。False

可選參數(shù)globs在執(zhí)行示例時給出了一個用作全局變量的字典。這個詞典的一個新的淺拷貝是為doctest創(chuàng)建的,所以它的例子從一個干凈的石板開始。默認(rèn)情況下,或者如果None使用新的空字典。

可選參數(shù)extraglobs給出了一個合并到用于執(zhí)行示例的全局變量中的字典。這適用于dict.update():如果globs和extraglobs具有共同的鍵,則extraglobs中的關(guān)聯(lián)值出現(xiàn)在組合字典中。默認(rèn)情況下,或者如果None,不使用額外的全局變量。這是一個允許doctests參數(shù)化的高級功能。例如,可以為基類編寫一個doctest,使用該類的通用名稱,然后通過傳遞將泛型名稱映射到要測試的子類的extraglobs字典來測試任意數(shù)量的子類。

可選參數(shù)詳細(xì)信息如果為true,則會打印大量內(nèi)容,如果為false,則僅打印失敗; 默認(rèn)情況下,或者如果None,當(dāng)且僅當(dāng)'-v'在時才是sys.argv。

可選的參數(shù)報告在最后打印摘要時為真,否則在最后不打印任何內(nèi)容。在詳細(xì)模式下,摘要是詳細(xì)的,否則摘要非常簡短(實際上,如果所有測試都通過,則為空)。

可選參數(shù)optionflags或一起選項標(biāo)志。請參見選項標(biāo)志部分。

可選參數(shù)raise_on_error默認(rèn)為false。如果為true,則在例子中發(fā)生第一次失敗或意外異常時引發(fā)異常。這樣可以對故障進(jìn)行事后調(diào)試。默認(rèn)行為是繼續(xù)運行示例。

可選參數(shù)解析器指定DocTestParser應(yīng)該用于從文件中提取測試的一個(或子類)。它默認(rèn)為一個普通的解析器(即,DocTestParser())。

可選的參數(shù)編碼指定應(yīng)該用于將文件轉(zhuǎn)換為unicode的編碼。

2.4版本中的新功能。

在版本2.5中更改:添加了參數(shù)編碼。

doctest.testmod([m][, name][, globs][, verbose][, report][, optionflags][, extraglobs][, raise_on_error][, exclude_empty])

所有參數(shù)都是可選的,除m外的所有參數(shù)都應(yīng)以關(guān)鍵字形式指定。

在從m開始可以訪問的函數(shù)和類中的docstrings中的測試示例(或者_(dá)_main__如果m沒有提供或者是None,則為module ),以m.__doc__。開頭。

還有可以從字典中獲得的測試?yán)觤.__test__,如果它存在與否None。m.__test__將名稱(字符串)映射到函數(shù),類和字符串; 函數(shù)和類docstrings搜索的例子; 字符串被直接搜索,就好像它們是docstrings一樣。

僅搜索附加到屬于模塊m的對象的文檔字符串。

返回(failure_count, test_count)。

可選參數(shù)名稱給出模塊的名稱; 默認(rèn)情況下,或者None,m.__name__被使用。

可選參數(shù)exclude_empty默認(rèn)為false。如果屬實,則沒有找到doctests的對象將被排除在考慮之外。默認(rèn)值是向后兼容的黑客,使代碼仍然使用doctest.master.summarize()連同testmod()繼續(xù)得到輸出,沒有測試對象。新構(gòu)造函數(shù)的exclude_empty參數(shù)DocTestFinder默認(rèn)為true。

可選參數(shù)extraglobs,verbose,report,optionflags,raise_on_error和globs與testfile()上述函數(shù)相同,只是globs默認(rèn)為m.__dict__。

在版本2.3中更改:添加了參數(shù)optionflags。

在版本2.4中更改:添加了參數(shù)extraglobs,raise_on_error和exclude_empty。

在版本2.5中更改:可選參數(shù)isprivate,在2.4中棄用,已被刪除。

doctest.run_docstring_examples(f, globs[, verbose][, name][, compileflags][, optionflags])

與對象f相關(guān)的測試?yán)? 例如,f可以是字符串,模塊,函數(shù)或類對象。

字典參數(shù)glob的淺拷貝用于執(zhí)行上下文。

失敗消息中使用可選參數(shù)名稱,缺省值為"NoName"。

如果可選參數(shù)verbose為true,則即使沒有失敗,也會生成輸出。默認(rèn)情況下,僅在發(fā)生示例故障時才會生成輸出。

可選參數(shù)compileflags給出了運行示例時應(yīng)由Python編譯器使用的一組標(biāo)志。默認(rèn)情況下,或者如果None,推導(dǎo)的標(biāo)志對應(yīng)于在globs中找到的一組未來特征。

可選參數(shù)optionflags與testfile()上面的函數(shù)一樣。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號