Python的测试程序TestProgram
发布时间:2023-12-11 09:05:08
下面是一个使用Python编写的测试程序TestProgram的例子:
# TestProgram.py
import unittest
def is_prime(n):
"""判断一个数是否为素数"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
class TestIsPrime(unittest.TestCase):
def test_is_prime(self):
self.assertTrue(is_prime(2))
self.assertTrue(is_prime(3))
self.assertFalse(is_prime(9))
self.assertTrue(is_prime(11))
self.assertFalse(is_prime(12))
if __name__ == '__main__':
unittest.main()
这个测试程序包含一个判断一个数是否为素数的函数is_prime,以及一个用于测试这个函数的测试类TestIsPrime。测试类继承自unittest.TestCase,每个测试方法以test_开头。
使用unittest.main()运行测试程序。在运行时,会执行测试类中所有以test_开头的测试方法,并输出测试结果。
接下来,我们通过命令行运行这个测试程序,并查看结果:
$ python TestProgram.py . ---------------------------------------------------------------------- Ran 1 test in 0.000s OK
结果显示测试通过,共运行了1个测试。
我们可以进行一些修改,让测试不通过,看看运行结果:
# 修改 TestProgram.py 中的测试方法 test_is_prime
def test_is_prime(self):
self.assertTrue(is_prime(2))
self.assertTrue(is_prime(3))
self.assertFalse(is_prime(9))
self.assertTrue(is_prime(11))
self.assertTrue(is_prime(12))
再次运行测试程序,结果如下:
$ python TestProgram.py
F
======================================================================
FAIL: test_is_prime (__main__.TestIsPrime)
----------------------------------------------------------------------
Traceback (most recent call last):
File "TestProgram.py", line 14, in test_is_prime
self.assertTrue(is_prime(12))
AssertionError: False is not true
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)
结果显示测试不通过,其中最后一行表示有1个测试失败。
这个例子描述了一个简单的测试程序的编写和运行过程。你可以按照这个示例编写并运行自己的测试程序。
