unittest模塊可以在命令行中從模塊、類(lèi)和單獨(dú)的測(cè)試方法中運(yùn)行測(cè)試:
python -m unittest test_module1 test_module2
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method
你可以傳遞一個(gè)包含任意模塊名和完全限定的類(lèi)或方法名稱的組合的列表。
測(cè)試模塊也可以通過(guò)文件路徑指定:
python -m unittest tests/test_something.py
這允許你使用shell文件名來(lái)指定測(cè)試模塊。
指定的模塊仍然必須可作為模塊導(dǎo)入。將路徑轉(zhuǎn)換為模塊名稱,只需要?jiǎng)h除.py并將路徑分隔符轉(zhuǎn)換成.即可。如果你想要執(zhí)行一個(gè)不可作為模塊導(dǎo)入的測(cè)試文件,你就應(yīng)該直接執(zhí)行該文件。
你可以通過(guò)傳入-v標(biāo)志來(lái)運(yùn)行測(cè)試,以獲得更多信息:
python -m unittest -v test_module
在沒(méi)有參數(shù)的情況下執(zhí)行,會(huì)啟動(dòng)Test Discovery:
python -m unittest
如果要獲取所有命令行選項(xiàng)的列表,請(qǐng)執(zhí)行:
python -m unittest -h
注:
3.2版本之前的版本,只允許運(yùn)行單獨(dú)的測(cè)試方法,不可以按模塊或類(lèi)執(zhí)行測(cè)試。
2.1 命令行選項(xiàng)
unittest支持下面這些命令行選項(xiàng):
-b,--buffer
在測(cè)試運(yùn)行期間緩沖標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤流。通過(guò)測(cè)試期間的輸出被丟棄。輸出在測(cè)試失敗或錯(cuò)誤時(shí)正?;仫@,并添加到失敗消息中。(沒(méi)看懂)
-c,--catch
測(cè)試運(yùn)行期間的Ctrl+C等待當(dāng)前測(cè)試結(jié)束,然后報(bào)告到目前為止的所有結(jié)果。第二個(gè)Ctrl+C引發(fā)了正常的KeyboardInterrupt異常。有關(guān)提供此功能的函數(shù),請(qǐng)參考Signal Handling。
-f,--failfast
在第一次錯(cuò)誤或失敗時(shí)停止測(cè)試運(yùn)行。
-k
僅運(yùn)行與模式或字符串匹配的測(cè)試方法和類(lèi)。此選項(xiàng)可以多次使用,在多次使用時(shí)包括與給定模式匹配的所有測(cè)試用例。
包含通配符*的模式使用fnmatch.fnmatchcase()來(lái)與測(cè)試名匹配。其他情況則使用簡(jiǎn)單的大小寫(xiě)敏感的子串來(lái)匹配。
模式與測(cè)試加載程序?qū)氲耐耆薅ǖ臏y(cè)試方法名稱匹配。例如:-k foo匹配foo_tests.SomeTest.test_something和bar_tests.SomeTest.test_foo,但是不匹配bar_tests.FooTest.test_something。
--locals
在traceback中顯示局部變量。
命令行還可以用于測(cè)試發(fā)現(xiàn),用于運(yùn)行項(xiàng)目中的所有測(cè)試或僅運(yùn)行子集。