#!/usr/bin/env python
"""
A simple test
"""
import os
import sys
def myprint(start):
"""Print the numbers"""
for item in range(10):
print 'item=', start * 10 + item
def mysum(first, second):
"""Get the sum of a and b"""
return first + second
def main():
"""The main function"""
for i in range(10):
myprint(i)
if __name__ == '__main__':
print 'OS: ', os.name
print 'Arguments: ', sys.argv
main()
def suite():
"""
Return the test suite
it should in Module File __init__
"""
tests = ['testmyprint','testmysum']
return unittest.TestSuite(map(TestTest, tests))
然后在最上面的一个python文件,假设为testAll.py文件中添加如下代码:
import unittest
import testTest
suite1 = testTest.suite()
suite = unittest.TestSuite()
suite.addTest(suite1)
if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(suite)
这假设的是引入模块testTest, 还可以引入其他的不同的模块,这样将所有的测试case都包括进来了
最后在命令行中输入python testAll.py就可以测试所有的测试case了
D:\Works\Eclipse\FirstPython\test>python testAll.py
testmyprint (testTest.TestTest) ... item= 10
item= 11
item= 12
item= 13
item= 14
item= 15
item= 16
item= 17
item= 18
item= 19
ok
testmysum (testTest.TestTest) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.016s
OK
5)将单元测试通过的话基本上就没有什么问题了,但是不一定保证写出的代码是最优的,所有有些时候我们需要进行调优,这样我们使用python的profiler来分析程序的执行性能
首先我们执行后python -m cProfile test.py -o test.out
就是获取test.py的执行性能结果,并且将结果输出到test.out文件中
然后使用pstats来获取test.out中的性能数据,可以使用下面的代码来解析数据:
"""Get and analyze the cProfile output file """
import pstats
import sys
if len(sys.argv) != 2:
print '%s <profile_out_file>' % __file__
sys.exit()
else:
FILENAME = sys.argv[1]
PROFILE = pstats.Stats(FILENAME)
PROFILE.sort_stats('time').print_stats()