簡體   English   中英

Python中的單元測試套件

[英]Unit Test Suite in Python

我可以將Test Suit作為python類/模塊實現,以便擁有Test Case模塊和Test Suite模塊。 我也想從testsuite傳遞參數到testcase。

像這樣:

  • 測試套件模塊:

     import unittest class GPUScoringMatrixTestSuite(unittest.TestSuite): def suite(): suite = unittest.TestSuite() suite.addTest(GPUScoringMatrixTestCase('PAM_350.txt')) suite.addTest(GPUScoringMatrixTestCase('PAM_250.txt')) self.run(suite) 
  • 測試用例模塊:

     class GPUScoringMatrixTestCase(unittest.TestCase): def __init__(self, matrix_file): self.filename = matrix_file @classmethod def setUpClass(self): self.matrix = GPUScoringMatrix(self.filename) def test_sum_penalties(self): sum = 0 for i in self.matrix.penalties: sum += i self.assertEqual(sum, -970, 'Iconsistence penalties between scoring matrices') 

參數matrix_file也不起作用...

我不確定您要在這里做什么,看來您正在嘗試編寫代碼以生成測試用例。 為此,也許它有助於考慮Python對象模型的驚人靈活性。 特別是,您可以生成類型:

def make_testcase(matrix_file):
    class MatrixTestCase(unittest.TestCase):
        pass
    MatrixTestCase.matrix_file = matrix_file
    return MatrixTestCase

PAM250Tests = make_testcase('PAM_250.txt')
PAM350Tests = make_testcase('PAM_350.txt')

我希望您不必再干預測試套件和unittest的自動測試發現,而是希望自動提取這兩個TestCase派生的類。

另一種方法是將矩陣文件作為常量存儲在派生類中,將測試函數放在基類中。 然后,派生類從unittest.TestCase和其他基類派生。

我也不了解第一部分,但是我嘗試將參數傳遞給測試套件中的測試用例。 您通過更改__init__可以正確地進行操作,但是,舊的__init__做着重要的事情,需要重新實現。

  • TestSuite模塊:

     import unittest class GPUScoringMatrixTestSuite(unittest.TestSuite): def suite(): suite = unittest.TestSuite() suite.addTest(GPUScoringMatrixTestCase('test_sum_penalties', 'PAM_350.txt')) suite.addTest(GPUScoringMatrixTestCase('test_sum_penalties', 'PAM_250.txt')) self.run(suite) 
  • TestCase模塊:

     class GPUScoringMatrixTestCase(unittest.TestCase): def __init__(self, test_name, matrix_file): #Preform duties of old __init__ super(GPUScoringMatrixTestCase, self).__init__(test_name) #Implement custom __init__ functionality self.filename = matrix_file @classmethod def setUpClass(self): self.matrix = GPUScoringMatrix(self.filename) def test_sum_penalties(self): sum = 0 for i in self.matrix.penalties: sum += i self.assertEqual(sum, -970, 'Iconsistence penalties between scoring matrices') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM