Çeşitli argümanları alabilen bir sürücü komut dosyasıyla birlikte çalıştırılan birkaç test modülüne sahibim. Testler python unittest modülü kullanılarak yazılır.Python betiği argümanlarını test modüllerine geçirme
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)
Sorunum Bu test modülleri içinde, ben sürücüye geçirilen farklı parametrelere dayalı atlamak istediğiniz belirli testler var, yani. Unittest'in bunu yapmak için bir dekoratörler ailesi sağladığının farkındayım, ancak bu bilgiyi bireysel modüllere iletmenin en iyi yolunu bilmiyorum. Örneğin, bir --skip-slow
argümanım olsaydı, daha sonra nasıl testlere yavaşça not ekleyebilir ve atlandırabilirler?
Zaman ayırdığınız için teşekkür ederiz.
Kullanabileceğiniz bir çözüm bulmuş olabilir. Cevabımı kontrol et. –