test-skill
npx skills add https://github.com/labring/fastgpt --skill test-skill
Agent 安装分布
Skill 文档
When to Use This Skill
ç¨æ·éè¦ç¼åä¸ä¸ªåå æµè¯æ¶ï¼è§¦å该 skillï¼ç¼ååå æµè¯ã
æµè¯æä»¶ä½ç½®
packages æµè¯
packages éçæµè¯ï¼åå¨ FastGPT/test/cases ç®å½ä¸ï¼åè·¯å¾å¯¹åº packages çç®å½ç»æãä¾å¦ï¼
packages/global/common/error/s3.tsæä»¶ï¼å¯¹åºçæµä¾æä»¶è·¯å¾ä¸º test/cases/global/common/error/s3.test.tsã
å¹¶ä¸ï¼å¯ä»¥éè¿ @fastgpt æ¥å¯¼å ¥ packages éçæä»¶ã ä¾å¦ï¼
import { s3 } from '@fastgpt/global/common/error/s3';
projects æµè¯
projects éçæµè¯ï¼åå¨ FastGPT/projects/app/test ç®å½ä¸ï¼åè·¯å¾å¯¹åº projects çç®å½ç»æã
projects/app/src/pages/api/core/dataset/collection/create.tsæä»¶ï¼å¯¹åºçæµä¾æä»¶è·¯å¾ä¸º projects/app/test/api/core/dataset/collection/create.test.tsã
æµè¯æä»¶è§å
éç¨è§å
- æ¯ä¸ªæä»¶ï¼å¯¹åºä¸ä¸ªæµè¯æä»¶ãæ¯ä¸ªå½æ°å¯¹åºä¸åç describe åã
- éè¦ç 100% è¡æ°å忝ã
- æµè¯æä»¶å°½å¯è½ä¸è¦å¼å ¥ç¬¬ä¸æ¹ä¾èµåºï¼ä½¿ç¨è¾ä¸ºåççæ¹å¼è¿è¡æ£æ¥ã妿éè¦å¼å ¥ç¬¬ä¸æ¹ä¾èµåºï¼åä»å¯¹åºæä»¶é export ä¾èµåºç» test 使ç¨ãä¾å¦ï¼
// FastGPT/packages/service/common/geo/index.ts
import type { NextApiRequest } from 'next';
// 忶坼åºä¸ä¸ªä¾èµç» FastGPT/test/cases/service/common/geo/index.test.ts 使ç¨
export type { NextApiRequest } from 'next';
- å°½éåå°å½æ° mockï¼å¦ææ¯ç³»ç»ä¸åçå¯è¿è¡ç彿°ï¼åæ é mockï¼åªéè¦ mock é£äºæ æ³æ¬å°ç´æ¥è¿è¡çä¾èµï¼æ¯å¦éè¦è¿ç¨æå¡ï¼API å¯é¥ä¹ç±»çï¼
- å¯¹äº type.ts, constants.ts, schema.ts, *.schema.ts æä»¶ï¼ä»¥åéææ°æ®ï¼ç´æ¥è·³è¿å¿½ç¥ã
- æ ¹æ® vitest.config.mts æä»¶é ç½®ï¼è·³è¿ä¸éè¦æµè¯çæä»¶ã
- Mock.ts æä»¶éï¼å å«äºå ¨å± mock çå 容ï¼å¨ç¼åæµè¯æ¶ï¼è¯·å¿éå¤ mockãç论ä¸ï¼æµè¯éå¯ä»¥ mock è¿è¡åç±» infraã
åºç¡å½æ°æä»¶æµè¯
å°½éä¸è¦ mockï¼èæ¯å®æ´çè¿è¡å ¶é»è¾è¿è¡æµè¯ã
带 API 请æ±ç彿°
mock 对åºç API 请æ±è¿è¡æµè¯ã
ç¼åæµç¨
ä¸ãä»»å¡åå¤
- è·åæéè¦ç¼åçæµè¯æä»¶ã
- åå»ºä»»å¡æ¸ åï¼æ¥éä¸ªå®ææ¯ä¸ªæä»¶çæµä¾ç¼åã
äºãæµä¾ç¼å
ä¸åæµä¾æä»¶ï¼å¯ä»¥å¹¶è¡è¿è¡ç¼åã
- æ£æ¥å¯¹åºç .test.ts æµè¯æä»¶ï¼å¦ææ²¡æåå建ã
- æèååæä»£ç åç¼åæµè¯æ ·ä¾ã
- æ£æ¥ TS é误ï¼ç¡®ä¿æ ts æ¥éã
- å®ææææµè¯æä»¶ç¼å
ä¸ãç»æéªè¯
- è°ç¨
pnpm test <file-path> <test-name>æ¥è¿è¡æµè¯å¹¶æ£æ¥è¦ççï¼ç¡®ä¿æ¯ä¸ªæä»¶çè¦ççè¾¾å° 90% 以ä¸ã - 妿æµè¯ä¸éè¿ï¼åæ ¹æ®éè¯¯ä¿¡æ¯æ£æ¥ä»£ç é»è¾æè æµè¯ç¨ä¾ã
- å¦éäºæ¬¡ä¿®æ¹ï¼ååå°âäºãæµä¾ç¼åâã
常ç¨å½ä»¤
# è¿è¡æææµè¯
pnpm test
# è¿è¡æå®æµè¯æä»¶(file-path 填宿´æä»¶è·¯å¾)
pnpm test <file-path>
# è¿è¡æå®æµè¯æä»¶çæå®æµè¯
pnpm test <file-path> <test-name>