如何在Node中檢測代碼庫中不需要的函數的使用情況,特別是Gulp?在Gulp任務中檢測不需要的函數(fdescribe,describe.only)
檢查無意中被寵壞的規格後,我即ddescribe
/fdescribe
和茉莉花iit
/fit
或.only
和.skip
爲摩卡:
// should be reported
fdescribe(function() {
// should not be reported
it(function() {
var fit = ...;
this.fit = ...;
});
// should not be reported
// fit(function() { ... });
// should be reported
xit(function() { ... });
// should be reported
fit(function() { ... });
});
// should be reported
describe.only(function() {
// should not be reported
it(function() { ... });
// should not be reported
// it.only(function() { ... });
// should be reported
it.skip(function() { ... });
// should be reported
it.only(function() { ... });
});
的任務應該與錯誤退出並輸出使用列出的功能的文件名和行號。
註釋的註釋不一定要被檢測到,以及具有相同名稱的功能/屬性(最有可能的是fit
),所以簡單的正則表達式匹配在這裏不是一個選項(就像console.*
那樣)。讚賞一些接受用戶定義函數名稱的基於AST的解決方案。
我沒有爲此考慮過絨毛。我想爲用戶定義的函數名稱提供基於AST的解決方案,但僅適用於測試框架全局變量eslint-plugin-mocha可能是我需要的。不幸的是,它看起來不支持'.skip'。 – estus
@estus好,我們有同樣的確切問題,但與茉莉花。我們已經用'eslint'和'eslint-plugin-jasmine'修復了這個問題,現在運行'grunt eslint'任務作爲預先提交的git鉤子 - 現在,在使用這個設置幾個月後,我可以說它確實有助於保持代碼清理偶然的殘留像聚焦的規格。樂意效勞。 – alecxe
@estus我認爲這個'eslint-plugin-mocha'規則會提醒skip:https:// github。COM/lo1tuma/eslint-插件-摩卡/斑點/主/文檔/規則/ no-global-tests.md。 – alecxe