Javascript 如何使用jest配置全局导入模块?

Javascript 如何使用jest配置全局导入模块?,javascript,jestjs,chai,Javascript,Jestjs,Chai,我有一个测试文件,如: let{expect}=chai; 描述(…) 当我运行jest时,我的测试显然失败了,错误没有定义。简单的解决方案是在每个测试文件中导入chai,但我更喜欢找到更好的解决方案。在jestConfig中是否有办法在全球范围内导入chai 我还尝试了setupFilesconfig来运行一个导入了chai的文件,但没有运行。Jestconfiguration将完成这项工作。将chai模块连接到global对象,然后您可以直接在测试文件中使用chai 例如 jest.con

我有一个测试文件,如:

let{expect}=chai;
描述(…)
当我运行jest时,我的测试显然失败了,错误没有定义。简单的解决方案是在每个测试文件中导入chai,但我更喜欢找到更好的解决方案。在jestConfig中是否有办法在全球范围内导入chai

我还尝试了
setupFiles
config来运行一个导入了chai的文件,但没有运行。

Jest
configuration将完成这项工作。将
chai
模块连接到
global
对象,然后您可以直接在测试文件中使用
chai

例如

jest.config.js

module.exports={
预设:'ts jest/presets/js with ts',
测试环境:“酶”,
设置文件:[
“/Users/ldu020/workspace/github.com/mrdulin/jest-codelab/src/stackoverflow/45702292/chai.setup.js”
],
setupFilesAfterEnv:['jest-Ezyme'],
测试环境选项:{
酶适配器:‘反应16’,
},
coverageReporters:['json','text','lcov','clover'],
测试匹配:['***/.[jt]s?(x)'***/?(*)+(规范测试)。[jt]s?(x)],
};
chai.setup.js

global.chai=require('chai'))
index.test.js

description('45702292',()=>{
它('应该通过',()=>{
控制台日志(柴)
chai.expect(1+1).to.be.eq(2)
});
});
测试结果:

 PASS  src/stackoverflow/45702292/index.test.js (16.492s)
  45702292
    ✓ should pass (18ms)

  console.log src/stackoverflow/45702292/index.test.js:3
    { version: '4.2.0',
      AssertionError: [Function: AssertionError],
      use: [Function],
      util: 1,
      config:
       { includeStack: false,
         showDiff: true,
         truncateThreshold: 40,
         useProxy: true,
         proxyExcludedKeys: [ 'then', 'catch', 'inspect', 'toJSON' ] },
      Assertion:
       { [Function: Assertion]
         addProperty: [Function],
         addMethod: [Function],
         addChainableMethod: [Function],
         overwriteProperty: [Function],
         overwriteMethod: [Function],
         overwriteChainableMethod: [Function] },
      expect: { [Function] fail: [Function] },
      should: [Function: loadShould],
      Should: [Function: loadShould],
      assert:
       { [Function]
         fail: [Function],
         isOk: [Function],
         isNotOk: [Function],
         equal: [Function],
         notEqual: [Function],
         strictEqual: [Function],
         notStrictEqual: [Function],
         deepStrictEqual: [Function],
         deepEqual: [Function],
         notDeepEqual: [Function],
         isAbove: [Function],
         isAtLeast: [Function],
         isBelow: [Function],
         isAtMost: [Function],
         isTrue: [Function],
         isNotTrue: [Function],
         isFalse: [Function],
         isNotFalse: [Function],
         isNull: [Function],
         isNotNull: [Function],
         isNaN: [Function],
         isNotNaN: [Function],
         exists: [Function],
         notExists: [Function],
         isUndefined: [Function],
         isDefined: [Function],
         isFunction: [Function],
         isNotFunction: [Function],
         isObject: [Function],
         isNotObject: [Function],
         isArray: [Function],
         isNotArray: [Function],
         isString: [Function],
         isNotString: [Function],
         isNumber: [Function],
         isNotNumber: [Function],
         isFinite: [Function],
         isBoolean: [Function],
         isNotBoolean: [Function],
         typeOf: [Function],
         notTypeOf: [Function],
         instanceOf: [Function],
         notInstanceOf: [Function],
         include: [Function],
         notInclude: [Function],
         deepInclude: [Function],
         notDeepInclude: [Function],
         nestedInclude: [Function],
         notNestedInclude: [Function],
         deepNestedInclude: [Function],
         notDeepNestedInclude: [Function],
         ownInclude: [Function],
         notOwnInclude: [Function],
         deepOwnInclude: [Function],
         notDeepOwnInclude: [Function],
         match: [Function],
         notMatch: [Function],
         property: [Function],
         notProperty: [Function],
         propertyVal: [Function],
         notPropertyVal: [Function],
         deepPropertyVal: [Function],
         notDeepPropertyVal: [Function],
         ownProperty: [Function],
         notOwnProperty: [Function],
         ownPropertyVal: [Function],
         notOwnPropertyVal: [Function],
         deepOwnPropertyVal: [Function],
         notDeepOwnPropertyVal: [Function],
         nestedProperty: [Function],
         notNestedProperty: [Function],
         nestedPropertyVal: [Function],
         notNestedPropertyVal: [Function],
         deepNestedPropertyVal: [Function],
         notDeepNestedPropertyVal: [Function],
         lengthOf: [Function],
         hasAnyKeys: [Function],
         hasAllKeys: [Function],
         containsAllKeys: [Function],
         doesNotHaveAnyKeys: [Function],
         doesNotHaveAllKeys: [Function],
         hasAnyDeepKeys: [Function],
         hasAllDeepKeys: [Function],
         containsAllDeepKeys: [Function],
         doesNotHaveAnyDeepKeys: [Function],
         doesNotHaveAllDeepKeys: [Function],
         throws: [Function],
         doesNotThrow: [Function],
         operator: [Function],
         closeTo: [Function],
         approximately: [Function],
         sameMembers: [Function],
         notSameMembers: [Function],
         sameDeepMembers: [Function],
         notSameDeepMembers: [Function],
         sameOrderedMembers: [Function],
         notSameOrderedMembers: [Function],
         sameDeepOrderedMembers: [Function],
         notSameDeepOrderedMembers: [Function],
         includeMembers: [Function],
         notIncludeMembers: [Function],
         includeDeepMembers: [Function],
         notIncludeDeepMembers: [Function],
         includeOrderedMembers: [Function],
         notIncludeOrderedMembers: [Function],
         includeDeepOrderedMembers: [Function],
         notIncludeDeepOrderedMembers: [Function],
         oneOf: [Function],
         changes: [Function],
         changesBy: [Function],
         doesNotChange: [Function],
         changesButNotBy: [Function],
         increases: [Function],
         increasesBy: [Function],
         doesNotIncrease: [Function],
         increasesButNotBy: [Function],
         decreases: [Function],
         decreasesBy: [Function],
         doesNotDecrease: [Function],
         doesNotDecreaseBy: [Function],
         decreasesButNotBy: [Function],
         ifError: [Function],
         isExtensible: [Function],
         isNotExtensible: [Function],
         isSealed: [Function],
         isNotSealed: [Function],
         isFrozen: [Function],
         isNotFrozen: [Function],
         isEmpty: [Function],
         isNotEmpty: [Function],
         ok: [Function],
         notOk: [Function],
         throw: [Function],
         Throw: [Function],
         extensible: [Function],
         notExtensible: [Function],
         sealed: [Function],
         notSealed: [Function],
         frozen: [Function],
         notFrozen: [Function],
         empty: [Function],
         notEmpty: [Function] } }

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        18.971s
Jest
配置将完成此任务。将
chai
模块连接到
global
对象,然后您可以直接在测试文件中使用
chai

例如

jest.config.js

module.exports={
预设:'ts jest/presets/js with ts',
测试环境:“酶”,
设置文件:[
“/Users/ldu020/workspace/github.com/mrdulin/jest-codelab/src/stackoverflow/45702292/chai.setup.js”
],
setupFilesAfterEnv:['jest-Ezyme'],
测试环境选项:{
酶适配器:‘反应16’,
},
coverageReporters:['json','text','lcov','clover'],
测试匹配:['***/.[jt]s?(x)'***/?(*)+(规范测试)。[jt]s?(x)],
};
chai.setup.js

global.chai=require('chai'))
index.test.js

description('45702292',()=>{
它('应该通过',()=>{
控制台日志(柴)
chai.expect(1+1).to.be.eq(2)
});
});
测试结果:

 PASS  src/stackoverflow/45702292/index.test.js (16.492s)
  45702292
    ✓ should pass (18ms)

  console.log src/stackoverflow/45702292/index.test.js:3
    { version: '4.2.0',
      AssertionError: [Function: AssertionError],
      use: [Function],
      util: 1,
      config:
       { includeStack: false,
         showDiff: true,
         truncateThreshold: 40,
         useProxy: true,
         proxyExcludedKeys: [ 'then', 'catch', 'inspect', 'toJSON' ] },
      Assertion:
       { [Function: Assertion]
         addProperty: [Function],
         addMethod: [Function],
         addChainableMethod: [Function],
         overwriteProperty: [Function],
         overwriteMethod: [Function],
         overwriteChainableMethod: [Function] },
      expect: { [Function] fail: [Function] },
      should: [Function: loadShould],
      Should: [Function: loadShould],
      assert:
       { [Function]
         fail: [Function],
         isOk: [Function],
         isNotOk: [Function],
         equal: [Function],
         notEqual: [Function],
         strictEqual: [Function],
         notStrictEqual: [Function],
         deepStrictEqual: [Function],
         deepEqual: [Function],
         notDeepEqual: [Function],
         isAbove: [Function],
         isAtLeast: [Function],
         isBelow: [Function],
         isAtMost: [Function],
         isTrue: [Function],
         isNotTrue: [Function],
         isFalse: [Function],
         isNotFalse: [Function],
         isNull: [Function],
         isNotNull: [Function],
         isNaN: [Function],
         isNotNaN: [Function],
         exists: [Function],
         notExists: [Function],
         isUndefined: [Function],
         isDefined: [Function],
         isFunction: [Function],
         isNotFunction: [Function],
         isObject: [Function],
         isNotObject: [Function],
         isArray: [Function],
         isNotArray: [Function],
         isString: [Function],
         isNotString: [Function],
         isNumber: [Function],
         isNotNumber: [Function],
         isFinite: [Function],
         isBoolean: [Function],
         isNotBoolean: [Function],
         typeOf: [Function],
         notTypeOf: [Function],
         instanceOf: [Function],
         notInstanceOf: [Function],
         include: [Function],
         notInclude: [Function],
         deepInclude: [Function],
         notDeepInclude: [Function],
         nestedInclude: [Function],
         notNestedInclude: [Function],
         deepNestedInclude: [Function],
         notDeepNestedInclude: [Function],
         ownInclude: [Function],
         notOwnInclude: [Function],
         deepOwnInclude: [Function],
         notDeepOwnInclude: [Function],
         match: [Function],
         notMatch: [Function],
         property: [Function],
         notProperty: [Function],
         propertyVal: [Function],
         notPropertyVal: [Function],
         deepPropertyVal: [Function],
         notDeepPropertyVal: [Function],
         ownProperty: [Function],
         notOwnProperty: [Function],
         ownPropertyVal: [Function],
         notOwnPropertyVal: [Function],
         deepOwnPropertyVal: [Function],
         notDeepOwnPropertyVal: [Function],
         nestedProperty: [Function],
         notNestedProperty: [Function],
         nestedPropertyVal: [Function],
         notNestedPropertyVal: [Function],
         deepNestedPropertyVal: [Function],
         notDeepNestedPropertyVal: [Function],
         lengthOf: [Function],
         hasAnyKeys: [Function],
         hasAllKeys: [Function],
         containsAllKeys: [Function],
         doesNotHaveAnyKeys: [Function],
         doesNotHaveAllKeys: [Function],
         hasAnyDeepKeys: [Function],
         hasAllDeepKeys: [Function],
         containsAllDeepKeys: [Function],
         doesNotHaveAnyDeepKeys: [Function],
         doesNotHaveAllDeepKeys: [Function],
         throws: [Function],
         doesNotThrow: [Function],
         operator: [Function],
         closeTo: [Function],
         approximately: [Function],
         sameMembers: [Function],
         notSameMembers: [Function],
         sameDeepMembers: [Function],
         notSameDeepMembers: [Function],
         sameOrderedMembers: [Function],
         notSameOrderedMembers: [Function],
         sameDeepOrderedMembers: [Function],
         notSameDeepOrderedMembers: [Function],
         includeMembers: [Function],
         notIncludeMembers: [Function],
         includeDeepMembers: [Function],
         notIncludeDeepMembers: [Function],
         includeOrderedMembers: [Function],
         notIncludeOrderedMembers: [Function],
         includeDeepOrderedMembers: [Function],
         notIncludeDeepOrderedMembers: [Function],
         oneOf: [Function],
         changes: [Function],
         changesBy: [Function],
         doesNotChange: [Function],
         changesButNotBy: [Function],
         increases: [Function],
         increasesBy: [Function],
         doesNotIncrease: [Function],
         increasesButNotBy: [Function],
         decreases: [Function],
         decreasesBy: [Function],
         doesNotDecrease: [Function],
         doesNotDecreaseBy: [Function],
         decreasesButNotBy: [Function],
         ifError: [Function],
         isExtensible: [Function],
         isNotExtensible: [Function],
         isSealed: [Function],
         isNotSealed: [Function],
         isFrozen: [Function],
         isNotFrozen: [Function],
         isEmpty: [Function],
         isNotEmpty: [Function],
         ok: [Function],
         notOk: [Function],
         throw: [Function],
         Throw: [Function],
         extensible: [Function],
         notExtensible: [Function],
         sealed: [Function],
         notSealed: [Function],
         frozen: [Function],
         notFrozen: [Function],
         empty: [Function],
         notEmpty: [Function] } }

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        18.971s