有没有一种方法可以将我自己的CLI开关传递给一个unittest文件?

4
如果你用python filename.py -d abc调用以下程序,你会得到unittest的帮助。如果你调用filename.py /d abc,则会得到以下错误信息:
AttributeError: 'module' object has no attribute '/d'
我想创建自己的CLI开关,以指定配置文件或其他CLI开关。我也尝试了--d。是否有一种方法使unittest接受其他的开关?
import unittest

class SomeTests(unittest.TestCase):
    def test_one(self):
        theTest( 'keith' )

    def test_two(self):
        otherTest( 'keith')

if __name__ == '__main__':
    unittest.main( argv=sys.argv, testRunner = unittest.TextTestRunner(verbosity=2))
1个回答

0
使用sysgetopt模块来解析命令行选项和参数,允许您使用短选项和长选项(例如 -x 和 --long-option)。

这与unittest如何混合,因为unittest似乎仍然对任何额外的标志感到犹豫不决。 - Keith
添加代码以使用for循环解析参数,对于每个参数,您将执行某些操作(例如设置变量或运行一些代码)。请查看如何在Python中使用 getopt/OPTARG? - mtm
搞定了。你调用parse_known_args()时没有传入任何参数,它会返回两个列表:已解析的参数和未解析的参数(或附加参数)。不幸的是,单元测试删除了arg[0],所以我只是把它放回去了。这正是我需要让单元测试满意的东西。 - Keith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接