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
})();

这帮我解决了,希望对你有帮助!