我有幾個測試模塊,它們都是通過可以接受各種參數的驅動程序腳本一起調用的。測試本身是使用python unittest模塊編寫的。將python腳本參數傳遞給測試模塊
import optparse
import unittest
import sys
import os
from tests import testvalidator
from tests import testmodifier
from tests import testimporter
#modify the path so that the test modules under /tests have access to the project root
sys.path.insert(0, os.path.dirname(__file__))
def run(verbosity):
if verbosity == "0":
sys.stdout = open(os.devnull, 'w')
test_suite = unittest.TestSuite()
test_suite.addTest(unittest.TestLoader().loadTestsFromTestCase(testvalidator.TestValidator))
test_suite.addTest(unittest.TestLoader().loadTestsFromTestCase(testmodifier.TestModifier))
test_suite.addTest(unittest.TestLoader().loadTestsFromTestCase(testimporter.TestDataImporter))
unittest.TextTestRunner(verbosity=int(verbosity)).run(test_suite)
if __name__ == "__main__":
#a simple way to control output verbosity
parser = optparse.OptionParser()
parser.add_option("--verbosity", "--verbosity", dest="verbosity", default="0")
(options, args) = parser.parse_args()
run(options.verbosity)
我的問題是,在這些測試模塊,我有一些測試,我想跳過基於傳遞給驅動程序的不同參數。我知道unittest提供了一個裝飾器家族,但我不知道將這些信息傳遞給各個模塊的最佳方法。例如,如果我有一個參數--skip-slow
,那麼我怎麼可以將測試註釋爲慢速,並讓它們跳過?
謝謝你的時間。
我可能找到了可以使用的解決方案。檢查我的答案。 – 2011-12-13 22:17:29