-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
29 lines (29 loc) · 3.1 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
feats:
✔ add RegEx matcher @done(24-09-28 17:44)
✔ 根据fixture文件名称,猜测对应的AI脚本名,如果fixture 没有指定script @done(24-09-28 18:33)
✔ multi scripts to test @done(24-09-29 19:12)
✔ the script can use `test: {skip: true}` in front-matter config to skip test @done(24-09-29 19:13)
✔ add `--generateOutput(-g)` flag to auto generate the output if no output in fixture file. @done(24-09-30 09:04)
✔ add `only` support in fixture and scripts @done(24-09-30 09:11)
✔ `script`/`scripts` in the fixtures file front-matter config can be array now @done(24-09-30 09:04)
✔ regex test can not work @done(24-10-05 16:15)
✔ skip in fixtures not work @done(24-10-05 16:28)
✔ supports template and tempalte function @done(24-10-06 11:17)
✔ supports input and output in front-matter config of fixture file @done(24-10-06 14:25)
✔ Add the `--runCount(-c)` flag to repeatedly run the test case and check if the results are consistent with the previous run, while recording the counts of matching and non-matching results. @done(24-10-07 20:33)
✔ Add `not` matcher to fixture test @done(24-11-21 09:31)
☐ 打分,打分我感觉是AI才能用。如果是代码,则只能使用数组,或者自定义tag(!score)表示的数组,数组的每个元素为一个得分点:分值,和 matcher,如果匹配则获得该分值. 分值如果省略默认为1分。
法一: 增加 score 字段,对象数组, 每一个对象表示一个分值,对象如下
* output: 就是定义满足期望输出时候的分值,如何是输出是对象,时候需要定义满足某个对象的某个属性时候的分值?
* diff: 定义满足diff条件的分值,这个是一个数组(必须和diff数组一致),或者直接放到diff中
* outputSchema: 这个可以有满足某个对象的某个属性
法二: !score 直接内置,但是如果output直接是简单值就无法内置,不过对简单值也无必要。或者约定 {score: 分值, value: 原来的期望匹配输出}
fixture项上的score,为该项的分值所占比值,默认为1,取值范围`(0-1]`。
测试项目有: output, outputSchema, diff
其中diff是output的补充(输出为字符串的时候),而outputSchema是从输出结构以及部分值是否满足测试。和output的对象比较有重叠的地方。
在 output为对象时候,无法对output本身内置score,但是可以在outputSchema中内置分数.
而当output是string时,则可以在diff上打分。
当output是函数的时候,为自定义测试。这个应该在返回值上修改规范,表达分数。比如可以返回对象`{result: true|string, score: 0-1}|true|string`
在diff, outputSchema以及函数中的分值,取值范围`(0-1]`. 表示在该项中所占的比值。
score分值应该接受两种表达: 1. 0-100% 小于1的百分比值; 2. 动态分值,整数是一个相对分值,需要将该项目的所有分值统计,然后做归一化。
归一化就是将一组数据按比例缩放到一个固定范围内,使得它们的总和为一个特定值(如100%)。