如果我们有一个单元测试文件my-spec.js并使用mocha运行:

mocha my-spec.js

默认超时为2000毫秒.可以使用命令行参数覆盖部分测试:

mocha my-spec.js --timeout 5000

是否可以全局更改所有测试的默认超时?

mocha my-spec.js

推荐答案

默认情况下,Mocha将读取一个名为test/mocha.opts的文件,该文件可以包含命令行参数.因此,您可以创建这样一个文件,其中包含:

--timeout 5000

无论何时在命令行上运行Mocha,它都会读取此文件,并默认设置超时5秒.

根据您的情况,另一种可能更好的方法是在测试文件的顶级describe调用中这样设置:

describe("something", function () {
    this.timeout(5000); 

    // tests...
});

这将允许您仅在每个文件的基础上设置超时.

如果希望全局默认值为5000,但为某些文件设置了不同的值,则可以使用这两种方法.


请注意,如果您要呼叫this.timeout(或访问摩卡为您设置的this中的任何其他成员),通常不能使用箭头功能.例如,this will usually not work:

describe("something", () => {
    this.timeout(5000); //will not work

    // tests...
});

这是因为箭头函数从函数出现的范围中选取this.Mocha将使用this的良好值调用该函数,但该值不会在arrow函数中传递.摩卡咖啡的文档在this topic页上写道:

不鼓励将箭头功能("lambdas")传递给摩卡.由于这个函数的词法绑定,这些函数无法访问Mocha上下文.

Javascript相关问答推荐

阻止iOS浏览器在传输摄像机视频时启用全屏摄像机模式

ChartJS:分组堆叠条形图渲染错误

Regex可以 Select 以任何顺序匹配组

IOS(React Native)中未找到模块SquareReaderSDK

将音频记录从js发送到activx-web服务器以保存到磁盘

响应式JS DataTable中的Bootstrap 5弹出程序无法正常工作

我可以后增量超过1(最好是内联)吗?

如何在非独立组件中使用独立组件?

为什么我的第二个OnClick Isloading值在TEK查询Mutations 查询中不起作用?

为什么使用MAX_SAFE_INTEGER生成随机整数时数字分布不准确?

创建1:1比例元素,以另一个元素为中心

对象和数字减法会抵消浏览器js中的数字

当在select中 Select 选项时,我必须禁用不匹配的 Select

Mongoose post hook在使用await保存时不返回Postman响应

并不是所有的iframe都被更换

我创建了一个创建对象的函数,我希望从该函数创建的对象具有唯一的键.我怎么能做到这一点?

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

使用Google API无法进行Web抓取

删除加载页面时不存在的元素(JavaScript)

如何修复使用axios运行TSC index.ts时出现的错误?