2014-01-14 32 views
2

我有以下文件夾結構。在python單元測試中指定特定的測試用例TestLoader

Unit 
    smoke.py 
    Test1 
     Test1.py 
    Test2 
     Test2.py 

兩個測試文件各有2測試用例。

smoke.py包含

suite1 = unittest.TestLoader().discover('Test1', pattern = "Test*.py") 
suite2 = unittest.TestLoader().discover('Test2', pattern = "Test*.py") 
alltests = unittest.TestSuite((suite1, suite2)) 
unittest.TextTestRunner(verbosity=2).run(alltests) 

上面的代碼運行4測試用例預計。

有沒有辦法從test1.py和test2.py運行一些特定的測試用例,我可以在上面的代碼中明確地將這些測試用例添加到suite1和suite 2中。

如果Test1.py在類Test1中包含testcase名稱test_system,TestLoader如何加載該特定測試用例而不是運行該模塊中的所有測試用例。

回答

5

你可以配置你的測試加載程序只能運行具有一定的前綴測試:

loader = unittest.TestLoader() 
loader.testMethodPrefix = "test_prefix"# default value is "test" 

suite1 = loader.discover('Test1', pattern = "Test*.py") 
suite2 = loader.discover('Test2', pattern = "Test*.py") 
alltests = unittest.TestSuite((suite1, suite2)) 
unittest.TextTestRunner(verbosity=2).run(alltests) 
+0

謝謝瑞吉斯,但我去了鼻子。 – Sumedh

+0

如果我回答了您的具體問題,請將其標記爲正確答案。 –

0

一個很好的解決方案可能是擺脫smoke.py,而不是安裝nose。鼻子是支持包含/排除規則的測試發現框架。

+0

我怕有人會說,看起來像我將不得不在鼻子閱讀起來。 – Sumedh