我不知道这是否可能。mocha.opts
我知道如果我们只使用 should.js 库,我们可以在文件中执行以下操作
--require should
但是由于chai
是父模块并且assert
是子模块chai
,我如何在mocha.opts
文件中要求它?
还是我错过了一些非常基本的东西?
AFAIK chai 和 mocha 以这种方式不兼容。它只适用于修改内置对象的原型,有些人认为这对于这个特定的用例是可以接受的,但通常它被认为是一种应该避免的不好的做法should
。should
您可以做的是编写自己的小包装模块来执行此操作:
global.assert = require('chai').assert;
然后mocha.opts
你可以做--require global-chai-assert
,你的测试将可以访问 chai 的assert
全局功能。我个人认为这是一种反模式,但如果你喜欢它,我会这样做。
从 chai v4.0.0 开始,您可以像这样注册 assert/expect/should 全局变量:
require('chai/register-assert'); // Using Assert style
require('chai/register-expect'); // Using Expect style
require('chai/register-should'); // Using Should style
所以你可以将它添加到你的 mocha.opts 中:
--require chai/register-should
chai 的 repo README中有一些使用示例。