gpt4 book ai didi

python - 将 python 脚本参数传递给测试模块

转载 作者:太空狗 更新时间:2023-10-30 00:11:52 25 4
gpt4 key购买 nike

我有几个测试模块,它们都是通过一个可以接受各种参数的驱动程序脚本一起调用的。测试本身是使用 python unittest 模块编写的。

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 参数,我怎么能将测试注释为慢,并跳过它们?

感谢您的宝贵时间。

最佳答案

其实我自己也一直在想这个问题,终于找到了解决办法。

主文件...

...
if __name__ == '__main__':
args = argparser()

from tests import *

...

在您的测试模块中,只需执行以下操作:

from __main__ import args

print args

我对此进行了测试,效果相当不错。好在它非常简单,而且一点也不难。

关于python - 将 python 脚本参数传递给测试模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com