我有大量的测试,其中一些有"(慢)"在名称中:
其中一些比标记的测试慢(慢),但是其他测试依赖,所以不能跳过。我只想跳过那些名字中的(慢)名称 - 这可能吗?
我正在使用摩卡。
答案 0 :(得分:4)
您可以使用两个命令行开关的组合来完成此操作。以下是文档的相关部分:
-g, --grep <pattern> only run tests matching <pattern>
-i, --invert inverts --grep matches
答案 1 :(得分:4)
在我看来,您正在为浏览器中加载的页面执行此操作以运行Mocha。要在浏览器中执行此操作,您可以在页面的URL中传递这些参数:
grep
大致对应于命令行上的--grep
选项。这会将测试运行缩小到与传递给grep
的表达式匹配的测试。但是,目前(即使是2.0.1)也没有办法让Mocha将此参数解释为正则表达式。它总是被解释为一个字符串。这就是我说“近似对应”的原因。命令行上的--grep
是正则表达式,但URL中传递的grep
参数是字符串。
invert
,对应命令行中的--invert
选项。这将反转grep
执行的匹配,从而选择grep
不匹配的测试。
因此,如果您通过附加以下字符串?grep=(slow)&invert=1
打开您的页面,它将运行其中没有字符串"(slow)"
的测试。
答案 2 :(得分:2)
Grep接受正则表达式模式,你可以这样做:
mocha --grep '^(?!.*\\b\(slow\)\\b)'
答案 3 :(得分:0)
mocha --opts mocha.opts --grep "^(?!.*SomeExpression)"
我无法在表达式中添加括号-bash / mocha失败。我建议您删除括号并在说明中放入类似@performance的标记,并使用与前一个类似的grep表达式执行mocha。