BSTestRunner——一个丑在路上的python unnitest HTML报告生成Runner
今天忽然看到HTMLTestRunner的样式,第一眼的感觉是样式有点过时了,稍微看了下源码,果然最后更新时间是几年前,由于实现比较简单,所以顺手将样式改一下。
效果图
设计思想
既然有UI,那么如果不提设计思想就会让人觉得很low。
BSTestRunner的设计思想是:大量留白,创造高档的氛围,顺便使用bootstrap3,用最傻瓜的方式实现响应式。
github地址
使用示例
首先一定要下载BSTestRunner.py
这个文件,然后扔到你觉得合适的地方,这个例子里我放到了当前目录下。
目录结构
BSTestRunner.py
insertion_sort.py
insertion_sort.py的源码
import unittest
import BSTestRunner
def insertion_sort(data):
for i in range(1, len(data)):
position = i - 1
cur = data[i]
while position >= 0 and cur < data[position]:
data[position + 1] = data[position]
position = position - 1
data[position + 1] = cur
class InsertSortTest(unittest.TestCase):
def setUp(self):
self.data = [3, 7, 21, 8, 5, 40]
self.sorted_data = [3, 5, 7, 8, 21, 40]
def test_insertion_sort(self):
insertion_sort(self.data)
self.assertEqual(self.data, self.sorted_data)
def test_insertion_sort_with_all_zero_data(self):
data = [0, 0, 0, 0, 0]
insertion_sort(data)
self.assertEqual(data, data)
if __name__ == '__main__':
BSTestRunner.main()
运行
python insertion_sort.py > report.html
应该看到的结果
..
Time Elapsed: 0:00:00.001000
此时当前路径下会多出一个report.html
文件,用浏览器打开,结果如下所示
后续计划
有需求麻烦在github上提issue