簡體   English   中英

使用mocha,如何運行*名稱中沒有*(慢)的所有測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM