测试套件无法运行

Posted

技术标签:

【中文标题】测试套件无法运行【英文标题】:Test Suite Failed to run 【发布时间】:2022-01-22 22:59:18 【问题描述】:

错误

throw:“钩子超时超过 5000 毫秒。 如果这是一个长时间运行的测试,请使用 jest.setTimeout(newTimeout) 增加超时值。"

  24 |
> 25 | afterAll(async () => 
     | ^
  26 |     jest.setTimeout(20000);
  27 |     await mongo.stop();
  28 |     await mongoose.connection.close();

  at Object.<anonymous> (src/test/setup.ts:25:1)
  at TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:333:13)

测试代码

setup.test.ts

import  MongoMemoryServer  from 'mongodb-memory-server';
import mongoose from 'mongoose';
import  app  from '../app';

let mongo: any;

beforeAll(async () => 
    jest.setTimeout(10000);
    process.env.JWT_KEY = 'asdfasd';
    mongo = await MongoMemoryServer.create();
    const uri = await mongo.getUri();

    await mongoose.connect(uri);
);

beforeEach(async () => 
    jest.setTimeout(10000);
    const collections = await mongoose.connection.db.collections();

    for(let collection of collections)
        await collection.deleteMany();
    
);

afterAll(async () => 
    jest.setTimeout(20000);
    await mongo.stop();
    await mongoose.connection.close();
)

依赖

"mongodb-memory-server": "^8.0.4", "@types/jest": "^27.0.3", “超级测试”:“^6.1.6”,“ts-jest”:“^27.1.2”

【问题讨论】:

【参考方案1】:

超时是指测试时间超过 5000 毫秒。

您可以以编程方式设置测试超时,尽管我认为这不能在测试中完成(如上所示),它需要在像 jest.setup.js 这样的全局设置文件中完成

或者,我建议在您的 jest.config.js 中设置超时

示例:


  "name": "my-project",
  "jest": 
    "verbose": true,
    "testTimeout": 5000
  

【讨论】:

以上是关于测试套件无法运行的主要内容,如果未能解决你的问题,请参考以下文章

测试套件无法运行 TypeError:无法读取未定义的属性“默认”

开玩笑:测试套件无法运行,意外令牌 =

无法使用phpunit运行测试套件

运行测试套件无法通过 maven 在 junit5 中运行

开玩笑:测试套件无法运行(Expo SDK 需要 Expo 才能运行)

Vue Jest 测试套件无法运行:SyntaxError: Unexpected identifier