在unittest框架下,向每个TestCase类传递参数
目前我的需求是:
1.每次运行一个测试集合(testsuit)e都会生成一个结果,并保存为html文件(为了不覆盖之前的测试结果,所以需要生成一个唯一标识)
2.运行之后会在数据库生成一条记录(django 的model--record),该记录与运行结果1 中的结果关联(即 唯一标识的html文件)
3.如果testsuit 中的testcase 类运行是有报错,则会在数据库生成一条记录(django 的model--bug),与1中的结果关联
分析上面三个需求,则得出,唯一标识的html文件需要与运行结束后存在数据库,也需要在运行中的时候存在数据库中,而且这个唯一标识不能写死,如果testsuit 有多个testcase则每个testcase中的 唯一标识还只能是一样的,之前尝试过 维护一个字典文件,但是带来的问题是,一个testsuit执行完了后才能执行完下一个,否则 唯一标识会被覆写,通过不断的debug,尝试了修改下testsutie 的源码,如何修改看下面讲解
一,使用 生成html文件,则我们在执行时先生成一个唯一标识(uuid),并将这个uuid写入 testsuite中
二,使用HTMLTestRunner 生成uuid+html
三,在HTMLTestRunner的run 方法中,将testsuite 的uuid 传递给result 的uuid中
四,uuid为什么要写入到 result,是因为在执行完成后满足需求2,(生成一条执行记录),之后将testsuite 中的testcase 写入uuid ,用于在执行用例时,如果有报错,则写入数据库中
五,在引用uuid 时
①,testcase中生成bug
②,在执行后生成 record