我有一个名为的文件test/helper.js
,用于在Node.js应用程序上运行Mocha测试。我的测试结构如下:
test/
test/helper.js # global before/after
test/api/sometest.spec.js
test/models/somemodel.spec.js
... more here
该文件helper.js
必须加载,因为它包含我的测试套件的全局挂钩。当我运行Mocha来执行整个测试套件时,如下所示:
mocha --recursive test/
该helper.js
文件在我的测试之前已加载,并且before
挂钩按预期执行。
但是,当我仅运行一个特定的测试时,helper.js
在测试之前不会加载。这是我的运行方式:
mocha test/api/sometest.spec.js
没有全局before
调用,甚至没有console.log('I WAS HERE');
。
那么如何使Mocha 始终 加载helper.js
文件?
Mocha没有任何特殊文件的概念,该文件helper.js
将在其他文件之前加载。
mocha --recursive
由于Mocha 恰好
加载文件的顺序,因此您尝试执行的操作在运行时会起作用。由于helper.js
它比其他文件高一个级别,因此将首先加载它。当您为Mocha指定单个文件时,Mocha只会加载
该文件 ,并且您发现自己helper.js
根本没有加载文件。
所以,你想要做的是加载的文件,以便将设置顶层(“全球”)挂钩(例如before
,after
等)。选项:
您可以以编程方式使用Mocha,然后按所需顺序向其提供文件。
您可以强迫自己始终在列出任何其他文件之前 先 在命令行上指定您的帮助文件。(我不会这样做,但是有可能。)
另一种选择是像我在此答案中详述的那样组织您的套房。基本上,您有一个“顶层”文件,可将套件的其余部分加载到其中。使用这种方法,您将失去在单个文件上运行Mocha的能力,但是您可以--grep
用来选择要运行的文件。
您 不能 使用该-r
选项。它会在运行套件之前加载模块,但不幸的是,加载的模块无法访问Mocha可用于您的测试的任何测试接口,因此无法设置挂钩。
我试图在<code>serenity bdd<code>项目中实现全局钩子。当我浏览下面的链接时,发现其中没有一个对我有用。其中一些并不是Serenity BDD特有的。 解决方案1 解决方案2 我的Maven版本是:
我已经创建了一个自定义钩子,它从服务器获取数据,向存储发送分派,并返回数据。如果我想在我的应用程序中列出所有评论,它是可用的,但是,我想在我需要获取所有评论回复的组件中重用它,而这应该只在单击某个按钮时发生。 这是下面的钩子。 在我的组件里面,我需要在点击按钮时获取回复 如果我把call放在处理程序中,我会得到一个错误,不能在那里调用hook,但是我只需要在单击按钮时调用它,所以我不知道是否有办法
我在关注丹·阿布拉莫夫的这篇文章: https://overreacted.io/making-setinterval-declarative-with-react-hooks/ 在本文中,Dan制作了一个自定义的useInterval钩子,以创建一个动态的setInterval。 钩子看起来像这样: 但有一部分我不明白,那就是: 我理解,如果延迟更改,则调用此useEffect。回调被分配给ti
我正在尝试卸载一个名为commitizen的全局安装的npm包。 当我运行此时,不会返回任何结果: 我重启了机器。 现在,为了检查软件包是否确实被卸载,我正在运行,期望出现错误,但令我惊讶的是,命令仍然可用: : : cd/usr/local/lin/node_模块的结果 因此,问题是什么是全球删除npm一揽子计划的正确方法?
我找到了一些像这样的向导http://www.mackhankins.com/blog/defining-your-own-helper-classes-in-laravel-4但这并不是我真正想要的,因为我希望能够使用函数修改不是类成员的值。 我有很多正则表达式函数,如果字符串与模式匹配,它们将修改字符串并返回修改后的字符串。我希望能够调用这些函数,就好像它们是在php函数中构建的一样。这是我过
问题内容: 我有几个应用程序试图合并为一个“套件”:2个应用程序是独立的,一个只是一个身份验证层(使用FB Connect的Everyauth)。我想这样设置: /-(首页)应用列表 / auth-登录任何应用程序 / app1-需要通过/ auth登录才能访问 / app2-(相同) 我曾考虑过让app1和app2保持独立,顶层是代理,但是我认为要在它们之间共享身份验证系统很困难。虚拟主机(通过