我有一个小的python脚本,我想添加一些测试。
对于一个更大的系统,我会从被测系统中获得模块和单独的测试,但是对于这个小小的东西,我想把它全部放在一个.py文件中。然后我就可以跑了:
> foo.py --test
运行测试和
> foo.py
正常运行我的脚本。
我到目前为止:
import unittest
import sys
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--test", action="store_true")
args = parser.parse_args()
if (args.test):
return unittest.main()
class TestBasicFunction(unittest.TestCase):
def test(self):
self.assertTrue(True)
if __name__ == '__main__':
sys.exit(main())
但它失败了,因为unittest.main()试图解析我脚本的参数。
我对单元测试框架并不挑剔。 py测试,鼻子,无论什么都好。
我该怎么做?
答案 0 :(得分:4)
请注意,reasons you might want to consider separating unittests from the code it is testing。
但是,
import unittest
import sys
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--test", action="store_true")
args = parser.parse_args()
print(args)
if args.test:
sys.argv.remove('--test')
return unittest.main(argv=sys.argv)
class TestBasicFunction(unittest.TestCase):
def test(self):
self.assertTrue(True)
if __name__ == '__main__':
sys.exit(main())