Javascript 使用mocha,我如何运行所有的测试*don';名字里有(慢)字吗?
我有大量的测试,其中一些测试的名称中有“(slow)”: 其中一些测试比标记的测试慢(慢),但被其他测试所依赖,因此不能跳过。我只想跳过那些名字中有(慢)的,可以吗Javascript 使用mocha,我如何运行所有的测试*don';名字里有(慢)字吗?,javascript,unit-testing,testing,mocha.js,Javascript,Unit Testing,Testing,Mocha.js,我有大量的测试,其中一些测试的名称中有“(slow)”: 其中一些测试比标记的测试慢(慢),但被其他测试所依赖,因此不能跳过。我只想跳过那些名字中有(慢)的,可以吗 我正在使用摩卡。您可以使用两个命令行开关组合来实现这一点。以下是文件的相关部分: -g、 --grep仅运行匹配的测试 -i、 --反转反转--grep匹配 Grep接受正则表达式模式,您可以这样做: mocha --grep '^(?!.*\\b\(slow\)\\b)' 在我看来,你这样做就像是为了在浏览器中加载一个页面来
我正在使用摩卡。您可以使用两个命令行开关组合来实现这一点。以下是文件的相关部分:
-g、 --grep仅运行匹配的测试
-i、 --反转反转--grep匹配
Grep接受正则表达式模式,您可以这样做:
mocha --grep '^(?!.*\\b\(slow\)\\b)'
在我看来,你这样做就像是为了在浏览器中加载一个页面来运行Mocha。要在浏览器中执行此操作,可以在页面的URL中传递以下参数:
,大致对应于命令行上的grep
选项。这将测试范围缩小到与传递给--grep
的表达式匹配的测试。但是,目前(甚至在2.0.1版本中)没有办法让Mocha将此参数解释为正则表达式。它总是被解释为一个字符串。这就是为什么我说“近似对应”grep
在命令行上是一个正则表达式,但在URL中传递的--grep
参数是一个字符串grep
,对应于命令行上的invert
选项。这将反转--invert
执行的匹配,从而选择grep
不匹配的测试grep
(slow)
的测试
mocha --opts mocha.opts --grep "^(?!.*SomeExpression)"
我无法在表达式中添加括号-bash/mocha失败。我建议您删除括号,在描述中添加@performance这样的标记,并使用类似于上一个表达式的grep表达式执行mocha。可以从javascript代码中使用正则表达式。例如:
mocha.setup({ui:'bdd',grep:newregexp(“.”)});mocha.run()代码>我想指出,如果一个测试依赖于另一个测试,那么应该将依赖关系移动到before()钩子,该钩子将被相关测试调用。嵌套descripe()套件也很有用。对于同一件事情的多个测试,我倾向于把慢的事情放在一个承诺中,由before钩子等待,也由测试等待。然后在测试中,我将我预期实际失败的代码(如assert.deepEqual)