如果我们有一个单元测试文件my-spec.js,并使用mocha运行:
mocha my-spec.js
字符串默认超时为2000毫秒。可以使用命令行参数覆盖部分测试:
mocha my-spec.js --timeout 5000
型是否可以全局更改所有测试的默认超时?即默认超时值将不同于2000 ms,当您调用:
型
xfyts7mz1#
默认情况下,Mocha将读取一个名为test/mocha.opts的文件,该文件可以包含命令行参数。因此,您可以创建这样一个文件,其中包含:
test/mocha.opts
--timeout 5000
字符串每当你在命令行运行Mocha时,它都会读取这个文件,并默认设置5秒的超时。另一种可能更好的方法是在测试文件中的顶级describe调用中这样设置:
describe
describe("something", function () { this.timeout(5000); // tests... });
型这将允许您仅在每个文件的基础上设置超时。如果希望全局默认值为5000,但对某些文件设置了不同的值,则可以使用这两种方法。请注意,如果要调用this.timeout(或访问Mocha为您设置的this的任何其他成员),则通常不能使用箭头函数。例如,这通常不起作用:
this.timeout
this
describe("something", () => { this.timeout(5000); //will not work // tests... });
型这是因为箭头函数从函数出现的作用域中获取this。Mocha将调用具有良好this值的函数,但该值不会在箭头函数内部传递。Mocha的文档在这个主题上说:不建议将箭头函数(“lambdas”)传递给Mocha。由于this的词法绑定,这样的函数无法访问Mocha上下文。
zsbz8rwp2#
只需添加到正确的答案,您就可以使用箭头函数设置超时,如下所示:
it('Some test', () => { }).timeout(5000)
字符串
wvt8vs2t3#
为了完整性而添加此内容。如果你(像我一样)在package.json文件中使用脚本,只需将--timeout选项添加到mocha:
package.json
--timeout
"scripts": { "test": "mocha 'test/**/*.js' --timeout 10000", "test-debug": "mocha --debug 'test/**/*.js' --timeout 10000" },
字符串然后,您可以运行npm run test来运行您的测试套件,并将超时设置为10,000毫秒。
npm run test
ljsrvy3e4#
在当前版本的Mocha中,可以像这样全局更改超时:
mocha.timeout(5000);
字符串只要在测试套件中的任何地方添加上面的行,最好是在规范的顶部或单独的测试帮助程序中。在旧版本中,只能在浏览器中,您可以使用mocha.setup更改全局配置。
mocha.setup
mocha.setup({ timeout: 5000 });
型本文档不涉及全局超时设置,但提供了一些关于如何在其他常见场景中更改超时的示例。
7vux5j2d5#
以下是我在TypeScript中的工作:
describe('WriteCSV', () => { it('should write the CSV file correctly', async function (this: Mocha.Context) { this.timeout(1000); }); });
5条答案
按热度按时间xfyts7mz1#
默认情况下,Mocha将读取一个名为
test/mocha.opts
的文件,该文件可以包含命令行参数。因此,您可以创建这样一个文件,其中包含:字符串
每当你在命令行运行Mocha时,它都会读取这个文件,并默认设置5秒的超时。
另一种可能更好的方法是在测试文件中的顶级
describe
调用中这样设置:型
这将允许您仅在每个文件的基础上设置超时。
如果希望全局默认值为5000,但对某些文件设置了不同的值,则可以使用这两种方法。
请注意,如果要调用
this.timeout
(或访问Mocha为您设置的this
的任何其他成员),则通常不能使用箭头函数。例如,这通常不起作用:型
这是因为箭头函数从函数出现的作用域中获取
this
。Mocha将调用具有良好this
值的函数,但该值不会在箭头函数内部传递。Mocha的文档在这个主题上说:不建议将箭头函数(“lambdas”)传递给Mocha。由于this的词法绑定,这样的函数无法访问Mocha上下文。
zsbz8rwp2#
只需添加到正确的答案,您就可以使用箭头函数设置超时,如下所示:
字符串
wvt8vs2t3#
为了完整性而添加此内容。如果你(像我一样)在
package.json
文件中使用脚本,只需将--timeout
选项添加到mocha:字符串
然后,您可以运行
npm run test
来运行您的测试套件,并将超时设置为10,000毫秒。ljsrvy3e4#
在当前版本的Mocha中,可以像这样全局更改超时:
字符串
只要在测试套件中的任何地方添加上面的行,最好是在规范的顶部或单独的测试帮助程序中。
在旧版本中,只能在浏览器中,您可以使用
mocha.setup
更改全局配置。型
本文档不涉及全局超时设置,但提供了一些关于如何在其他常见场景中更改超时的示例。
7vux5j2d5#
以下是我在TypeScript中的工作:
字符串