我有一个小的 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 测试,nose,什么都行。
我该怎么做?
最佳答案
注意有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())
关于包含自己的单元测试的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46505806/