Jest 两次调用 async jest.config.ts
Jest calls async jest.config.ts twice
在我包含 Puppeteer UI 测试的 Typescript 存储库中,我有一个最近更新的 jest.config.ts 文件以导出异步对象,因为我们必须调用 api 来获取信息需要使用 jest 的 reporters
属性
将其放入测试报告中
注意到由于这是异步导出,jest 开始执行 jest.config.ts 两次。因此,api 调用比必要的调用了两次。非异步时不会发生这种情况。
这可能是错误还是我遗漏了什么?我的疯狂猜测是 jest.config.ts 第一次执行全局配置,第二次执行项目配置,但这仅在其异步时发生。
这是我的 jest.config.ts 文件:
import type { Config } from '@jest/types';
import BitBucketAPI from './BitBucketAPI';
export default async (): Promise<Config.InitialOptions> => {
return {
verbose: true,
bail: false,
maxWorkers: 4,
forceExit: true,
preset: 'ts-jest',
testEnvironment: 'node',
testSequencer: './test-sequencer.ts',
testRegex: '((\.|/)(spec))\.(ts)$',
reporters: [
'default',
[
'jest-html-reporters',
{
publicPath: './test-reports',
filename: 'main.html',
pageTitle: 'Test Report',
customInfos: [
{
title: 'Environment URL',
value: 'Test',
},
await new BitBucketAPI().retrieveCommitInformation().then(commitInformation => {
return {
title: 'BitBucket data',
value: commitInformation,
};
}) : {}
],
}
]
],
};
};
我 运行 和你的 post 运行 有同样的问题。
我能够解决它,因此它不会通过直接调用函数来调用函数两次,如下所示:
export default (async (): Promise<Config.InitialOptions> => {
//something here
})();
这帮我解决了,希望对你有帮助!
在我包含 Puppeteer UI 测试的 Typescript 存储库中,我有一个最近更新的 jest.config.ts 文件以导出异步对象,因为我们必须调用 api 来获取信息需要使用 jest 的 reporters
属性
注意到由于这是异步导出,jest 开始执行 jest.config.ts 两次。因此,api 调用比必要的调用了两次。非异步时不会发生这种情况。
这可能是错误还是我遗漏了什么?我的疯狂猜测是 jest.config.ts 第一次执行全局配置,第二次执行项目配置,但这仅在其异步时发生。
这是我的 jest.config.ts 文件:
import type { Config } from '@jest/types';
import BitBucketAPI from './BitBucketAPI';
export default async (): Promise<Config.InitialOptions> => {
return {
verbose: true,
bail: false,
maxWorkers: 4,
forceExit: true,
preset: 'ts-jest',
testEnvironment: 'node',
testSequencer: './test-sequencer.ts',
testRegex: '((\.|/)(spec))\.(ts)$',
reporters: [
'default',
[
'jest-html-reporters',
{
publicPath: './test-reports',
filename: 'main.html',
pageTitle: 'Test Report',
customInfos: [
{
title: 'Environment URL',
value: 'Test',
},
await new BitBucketAPI().retrieveCommitInformation().then(commitInformation => {
return {
title: 'BitBucket data',
value: commitInformation,
};
}) : {}
],
}
]
],
};
};
我 运行 和你的 post 运行 有同样的问题。 我能够解决它,因此它不会通过直接调用函数来调用函数两次,如下所示:
export default (async (): Promise<Config.InitialOptions> => {
//something here
})();
这帮我解决了,希望对你有帮助!