为什么无法获取测试代码中globalSetup中设置的全局变量?

zha*_*ing 7 jestjs

我使用Jest在节点中进行单元测试.
我使用了Jest v22中的新功能globalSetup.
我在globalSetup中定义了一个全局变量.
但我无法在测试代码中得到它.控制台日志未定义.
这个问题的任何人?
谢谢.

开玩版:22.0.0
节点版本:8.9.0
纱线版本:1.3.2
操作系统:mac High Sierra 10.13.2

代码如下:

// package.json
{
  "jest": {
    "globalSetup": "<rootDir>/src/globalSetupTest.js"
  }
}

// globalSetupTest.js
module.exports = async function() {
  global.foo = 'foo';
  console.log(`global setup: ${global.foo}`);
};

// App.test.js
describe('APP test', () => {
  it('renders without crashing', () => {
    console.log({ foo: global.foo });
  });
});

// test result
yarn run v1.3.2
$ node scripts/test.js --env=node --colors
global setup: foo
 PASS  src/App.test.js
  APP test
    ? renders without crashing (5ms)

  console.log src/App.test.js:3
    { foo: undefined }

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.354s, estimated 1s
Ran all test suites.
Run Code Online (Sandbox Code Playgroud)

sfr*_*ini 0

你能试一下吗..

  global.foo = 'foo';
  console.log(`global setup: ${global.foo}`);
Run Code Online (Sandbox Code Playgroud)

(删除出口)

您可以尝试将 globalSetup 更改为 setupFiles。那个,不会期望有任何功能。

https://facebook.github.io/jest/docs/en/configuration.html#setupfiles-array