[英]With mocha, how do I run all tests that *don't* have (slow) in the name?
我有一大堆測試,其中一些在名稱中有“(慢)”:
其中一些比標記的測試慢(慢),但是其他測試依賴,所以不能跳過。 我只想跳過那些名字中的(慢) - 這可能嗎?
我正在使用摩卡。
您可以使用兩個命令行開關的組合來完成此操作。 以下是文檔的相關部分:
-g, --grep <pattern> only run tests matching <pattern> -i, --invert inverts --grep matches
它看起來像你正在為瀏覽器中加載的頁面運行Mocha。 要在瀏覽器中執行此操作,您可以在頁面的URL中傳遞這些參數:
grep
,它大致對應於命令行上的--grep
選項。 這會將測試運行縮小到與傳遞給grep
的表達式匹配的測試。 但是,目前(即使是2.0.1)也沒有辦法讓Mocha將此參數解釋為正則表達式 。 它總是被解釋為一個字符串。 這就是我說“近似對應”的原因。 命令行上的--grep
是正則表達式,但URL中傳遞的grep
參數是一個字符串。
invert
對應於--invert
在命令行上的選項。 這將反轉grep
執行的匹配,從而選擇grep
不匹配的測試。
因此,如果您通過附加以下字符串打開頁面?grep=(slow)&invert=1
它將運行沒有字符串"(slow)"
的測試。
Grep接受正則表達式模式,你可以這樣做:
mocha --grep '^(?!.*\\b\(slow\)\\b)'
mocha --opts mocha.opts --grep "^(?!.*SomeExpression)"
我無法在表達式中添加括號 - bash / mocha失敗。 我建議你刪除括號並在描述中放置像@performance這樣的標簽,並使用像前一個一樣的grep表達式執行mocha。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.