![]()
用 Cursor 寫(xiě)測(cè)試技能,明明照著教程配好了 SKILL.md,AI 就是不按套路出牌?
技能多了就“失憶”,輸出格式亂七八糟,換個(gè)項(xiàng)目直接報(bào)廢……
別急著懷疑 AI,80% 的問(wèn)題都出在下面這 8 個(gè)坑里。
![]()
坑 1:技能根本不在列表里(路徑/格式寫(xiě)錯(cuò)了)
典型現(xiàn)象:
對(duì)話框里輸入“列出你當(dāng)前擁有的 skills”,返回的列表找不到你寫(xiě)的那個(gè)技能。
AI 完全不理會(huì)你的指令,用通用方式回答。
原因:
Cursor 要求技能文件必須放在.cursor/skills/<技能文件夾>/SKILL.md,且 YAML 頭格式必須嚴(yán)格正確。
解決:
1、確認(rèn)路徑
你的項(xiàng)目/└── .cursor/ └── skills/ └── 接口測(cè)試生成器/ ← 文件夾名隨意 └── SKILL.md ← 文件名固定大寫(xiě)
2、檢查 SKILL.md 頭格式
必須這樣寫(xiě):
---name: 接口測(cè)試生成器description: 根據(jù)接口代碼生成 pytest 測(cè)試用例---以下是你的指令...
常見(jiàn)錯(cuò)誤:--- 沒(méi)寫(xiě)全、name: 后面缺少空格、中文冒號(hào)。
3、重新加載
修改后按 Cmd/Ctrl+Shift+P → 輸入 Reload Skills,或直接重啟 Cursor。
坑 2:技能總是時(shí)靈時(shí)不靈(靈敏度下降)
典型現(xiàn)象:
技能描述里寫(xiě)了“當(dāng)用戶(hù)要求生成測(cè)試用例時(shí)觸發(fā)”,但 AI 有時(shí)觸發(fā),有時(shí)不觸發(fā)。
項(xiàng)目里技能數(shù)量超過(guò) 3 個(gè)后,AI 經(jīng)常選錯(cuò)、漏選。
原因:
多個(gè)技能混淆了 AI 的意圖識(shí)別,它要在好幾份描述里做選擇,再加上通用指令干擾,自然不穩(wěn)。
解決:
強(qiáng)制點(diǎn)名法:對(duì)話中直接用 @技能名 指定,不依賴(lài)自動(dòng)判斷。
示例:
@接口測(cè)試生成器 針對(duì) user_api.py 生成測(cè)試用例
雖然每次都要手動(dòng)打一下,但 可靠性接近 100%。可以把它寫(xiě)進(jìn)團(tuán)隊(duì)規(guī)范:凡是要求技能輸出,必須 @技能名。
坑 3:全局技能太多,AI 聊久了就“失憶”
典型現(xiàn)象:
一開(kāi)始技能工作正常,聊了幾輪后 AI 突然回歸普通模式,好像忘了自己有這個(gè)技能。
甚至開(kāi)始出現(xiàn)錯(cuò)誤的輸出格式。
原因:
全局技能(對(duì)所有項(xiàng)目生效)會(huì)一直占用上下文窗口。如果你掛了 5 個(gè)全局技能,每個(gè)幾百字,再加上系統(tǒng) prompt,可能占據(jù)好幾千 token。對(duì)話變長(zhǎng)后,早期的技能描述就被“擠出”窗口,AI 自然忘記。
解決:
- 原則:只有“通用規(guī)范類(lèi)”技能才放全局。
- 例如:“測(cè)試報(bào)告必須包含風(fēng)險(xiǎn)分析”、“所有代碼示例用 Python 3.10+”。
- 項(xiàng)目專(zhuān)屬技能(如針對(duì)某個(gè)接口的生成器)放在項(xiàng)目級(jí) .cursor/skills/,不要全局。
- 定期清理:不常用的全局技能先刪掉,用的時(shí)候再加。
坑 4:技能執(zhí)行到一半就斷掉或卡住
典型現(xiàn)象:
技能要求 AI 先分析代碼、再生成用例、再輸出報(bào)告。但 AI 做完分析后突然問(wèn)“需要我繼續(xù)嗎?”或者只輸出分析結(jié)果,沒(méi)有后續(xù)。
原因:
技能描述中 沒(méi)有明確要求“一次性完成所有步驟”,AI 理解為可以分步輸出。
或者某一步的輸出格式與下一步期望的輸入不匹配,AI 無(wú)法自動(dòng)銜接。
解決:
在技能描述開(kāi)頭加強(qiáng)制規(guī)則:
## 執(zhí)行規(guī)則- 你必須一次性完成以下所有步驟,中間不得詢(xún)問(wèn)用戶(hù)是否繼續(xù)。- 步驟3的輸出必須保存為 `{analysis}`,步驟4必須直接使用該變量。
如果技能超過(guò) 10 步,考慮拆成兩個(gè)技能,用 → 鏈?zhǔn)秸{(diào)用。
![]()
坑 5:技能老是忘記你告訴它的項(xiàng)目規(guī)則
典型現(xiàn)象:
你已經(jīng)在對(duì)話中說(shuō)過(guò)“我們的接口返回碼 0000 表示成功,其他表示失敗”。
技能第一次記得,幾輪對(duì)話后又開(kāi)始用 HTTP 200 判斷成功。
或者你要求“測(cè)試環(huán)境必須用公司內(nèi)部賬號(hào)”,過(guò)一會(huì)兒它就換回公共賬號(hào)。
原因:
項(xiàng)目特定規(guī)則只存在于臨時(shí)對(duì)話記憶中,早期信息會(huì)被后續(xù)內(nèi)容擠走。
技能描述本身沒(méi)有固化這些常量。
解決:
把項(xiàng)目規(guī)則直接寫(xiě)進(jìn) SKILL.md,不要只靠口頭告知。
示例:
## 項(xiàng)目特定約束- 成功碼校驗(yàn):`response.code == "0000"`- 測(cè)試域名:`https://test-internal.example.com`- 默認(rèn)超時(shí):30 秒,不可低于 10 秒
如果規(guī)則經(jīng)常變動(dòng),可以建一個(gè)名為 項(xiàng)目規(guī)范 的全局技能(只放常量),需要時(shí)用 @項(xiàng)目規(guī)范 顯式引用,避免自動(dòng)加載占用上下文。
坑 6:輸出格式隨心所欲,沒(méi)法自動(dòng)化解析
典型現(xiàn)象:
你要求“輸出測(cè)試用例,格式為 JSON”,AI 有時(shí)輸出 JSON,有時(shí)輸出 Markdown 表格,有時(shí)還加一堆解釋文字。
你想把它接到自動(dòng)化工具(如上傳到 TAPD),卻被亂七八糟的格式卡住。
原因:
技能描述中的格式要求強(qiáng)制性不夠,AI 理解為“建議”而非“必須”。
沒(méi)有給出精確的 Schema 示例。
解決:
在技能描述中使用 “輸出格式約束 + 強(qiáng)制示例”,并加警告語(yǔ)。
示例:
## 輸出格式(必須嚴(yán)格遵守,不得添加任何額外文字)你必須輸出以下結(jié)構(gòu)的 JSON,不要輸出代碼塊之外的任何內(nèi)容。{ "test_cases": [ {"id": 1, "name": "登錄成功", "steps": ["輸入賬號(hào)", "輸入密碼", "點(diǎn)擊登錄"]} ]}如果生成失敗,輸出 {"error": "失敗原因"},不要自由發(fā)揮。
如果平臺(tái)支持(如 OpenAI),開(kāi)啟 JSON Mode 或 Structured Output 會(huì)更穩(wěn)。
團(tuán)隊(duì)內(nèi)部可以用腳本校驗(yàn)輸出是否符合預(yù)期 JSON Schema。
坑 7:換個(gè)項(xiàng)目,技能就失靈了
典型現(xiàn)象:
在項(xiàng)目 A 中完美運(yùn)行的技能(比如“根據(jù) Model 生成 SQL 測(cè)試語(yǔ)句”),復(fù)制到項(xiàng)目 B 的 .cursor/skills/ 下,表現(xiàn)完全不同——報(bào)錯(cuò)、亂輸出、甚至拒絕執(zhí)行。
原因:
技能描述中隱含了項(xiàng)目 A 的特有假設(shè):絕對(duì)路徑、特定文件名、目錄結(jié)構(gòu)、依賴(lài)庫(kù)。
項(xiàng)目 B 沒(méi)有這些,AI 執(zhí)行時(shí)就抓瞎。
另外,項(xiàng)目 B 的其他全局技能也可能干擾意圖識(shí)別。
解決:
- 技能描述要盡量抽象,基于相對(duì)路徑和即時(shí)發(fā)現(xiàn)。
- 錯(cuò)誤示例:"讀取 api/user.py 文件"
- 正確示例:"分析當(dāng)前編輯器中打開(kāi)的 Python 文件中的接口定義"
- 增加前置環(huán)境檢查:要求 AI 先確認(rèn)必要條件,不滿(mǎn)足則給出友好提示。
- 示例:"如果項(xiàng)目根目錄下沒(méi)有 conftest.py,請(qǐng)?zhí)崾居脩?hù)先初始化 pytest 基礎(chǔ)配置。"
- 跨項(xiàng)目遷移后,先用 列出你當(dāng)前擁有的skills 確認(rèn)技能已加載,然后用一個(gè)最小測(cè)試驗(yàn)證(比如 @技能名 對(duì)當(dāng)前文件做基礎(chǔ)檢查)。
坑 8:團(tuán)隊(duì)協(xié)作時(shí),每個(gè)人的技能版本不一樣
典型現(xiàn)象:
你優(yōu)化了技能(增加了異常場(chǎng)景覆蓋),推送到 Git。
隊(duì)友拉取代碼后,生成用例的質(zhì)量還是老樣子。
或者多人開(kāi)發(fā)同一項(xiàng)目,各人本地 .cursor/skills/ 內(nèi)容不同步,互相看不到對(duì)方的改進(jìn)。
原因:
- cursor/skills/ 可能被 .gitignore 忽略了,沒(méi)有納入版本管理。
- Cursor 不會(huì)自動(dòng)檢測(cè)遠(yuǎn)程更新,隊(duì)友必須手動(dòng)拉取并重載。
- 隊(duì)友私下又改了自己本地的版本,造成分叉。
解決:
1、將 .cursor/skills/ 納入 Git 版本管理,并在 README 中明確:技能修改必須提交并通知團(tuán)隊(duì)。
2、在技能描述中添加版本號(hào)和日期,便于查詢(xún)。
---name: 接口測(cè)試生成器version: 2.1.0last_updated: 2026-05-08---
團(tuán)隊(duì)成員可以問(wèn) AI“當(dāng)前技能版本是多少”來(lái)核對(duì)。
3、建立團(tuán)隊(duì)更新 SOP:
- 修改者提交后,在群里發(fā)“技能 xxx 已更新至 v2.1”。
- 其他人執(zhí)行 git pull,然后在 Cursor 中 Reload Skills,必要時(shí)重啟編輯器。
- 用 列出你當(dāng)前擁有的skills 確認(rèn)版本號(hào)已更新。
別忘了 Skills 最實(shí)用的特性:邊用邊優(yōu)化
Skills 不是一錘子買(mǎi)賣(mài)。你可以在對(duì)話中直接迭代:
通過(guò)以上經(jīng)驗(yàn),優(yōu)化下 `SKILL.md` 這個(gè)技能描述,要求在測(cè)試用例中覆蓋空值和超長(zhǎng)字符串的異常校驗(yàn)。
AI 會(huì)輸出優(yōu)化后的內(nèi)容,你復(fù)制替換原文件,然后 Reload Skills 或重啟編輯器(避免緩存)。
幾輪下來(lái),技能就能完美貼合你的工作流。
Skills 通用框架
如果你看到比較喜歡的技能,可以提取它的技能框架,套用到其他的技能去
參考skill-creator 技能結(jié)構(gòu)內(nèi)容,提取技能結(jié)構(gòu)與標(biāo)題級(jí)骨架。要求中文輸出
![]()
??想了解更多漲薪技能提升方法
??可以到公主號(hào)【Atstudy技術(shù)社區(qū)】,即可加入領(lǐng)取 ??????
轉(zhuǎn)行、入門(mén)、提升、需要的各種干貨資料
內(nèi)含AI測(cè)試、 車(chē)載測(cè)試、AI大模型開(kāi)發(fā)、BI數(shù)據(jù)分析、銀行測(cè)試、游戲測(cè)試、AIGC
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.