unittest中,当要运行用例并生成报告时,有多种方式。现在我们就来将最原始的一种方式:TextTestRunner()
该方式会将测试文件写到一个文件中。
示例:
# 时间戳 time_stamp = time.strftime("%Y%m%d%H%M%S") report_dir = os.path.join(os.path.dirname(__file__), "report", (time_stamp + ".txt")) if __name__ == '__main__': suite = unittest.TestLoader().discover(start_dir=r".\test_collections_b", pattern='test*.py', top_level_dir=None) with open(file=report_dir, mode="a", encoding="utf-8") as file: runner = unittest.TextTestRunner(stream=file, descriptions=True, verbosity=2) runner.run(suite)
在示例中:
1、我们生成了一个时间戳:time_stamp,用于区分不同的测试报告文件,且可以看到测试报告的生成信息。
2、report_dir为测试报告文件的完整路径,文件名为time_stamp
3、在window中,os.mknod()无法生成一个空的文件,那么我们就打开测试报告文件时使用追加模式(mode="a")
这样在文件不存在时,将会生成一个新的文件。
4、实例化一个TextTestRunner对象,TextTestRunner()主要参数:
a,stream:文件流。
b,verbosity:报告详细等级。
5,TextTestRunner对象调用run方法(传入套件)
此种方式较老,落伍了!