より良いオプションは、でunittest.main()
複数回呼び出すことexit=False
です。この例では、引数として繰り返す回数を取り、その回数だけ呼び出しますunittest.main
。
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--repeat", dest="repeat", help="repeat tests")
(args, unitargs) = parser.parse_known_args()
unitargs.insert(0, "placeholder") # unittest ignores first arg
# add more arguments to unitargs here
repeat = vars(args)["repeat"]
if repeat == None:
repeat = 1
else:
repeat = int(repeat)
for iteration in range(repeat):
wasSuccessful = unittest.main(exit=False, argv=unitargs).result.wasSuccessful()
if not wasSuccessful:
sys.exit(1)
これにより、ユーザーが指定した回数要求したすべてのテストが実行されるため、柔軟性が大幅に向上します。
以下をインポートする必要があります。
import unittest
import argparse