Node.js 我正在尝试使用jest测试我的节点API,但它不起作用。我无法解决这可能是什么原因以及如何解决这一问题?

Node.js 我正在尝试使用jest测试我的节点API,但它不起作用。我无法解决这可能是什么原因以及如何解决这一问题?,node.js,jestjs,Node.js,Jestjs,这是我的主app.js文件,我在其中定义了路径 const express = require("express"); const bodyParser = require("body-parser"); const mongoose = require("mongoose"); const cookieParser = require("cookie-parser"); const categoriesRouter

这是我的主app.js文件,我在其中定义了路径

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
const categoriesRouter = require("./routes/categoriesRouter");
const productRouter = require("./routes/productRouter");
const userRouter = require("./routes/userRouter");
const orderRouter = require("./routes/ordersRouter");
const app = express();
const cors = require("cors");
app.use(bodyParser.json());
app.use(cors());
app.use(cookieParser());

mongoose
  .connect("mongodb://localhost:27017/MERO-HARDWARE-PASAL", {
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true,
  })
  .then(() => console.log("DB connected"));

app.use("/api", categoriesRouter);
app.use("/api", productRouter);
app.use("/api", userRouter);
app.use("/api", orderRouter);
app.use("/uploads", express.static("uploads"));

app.get("*", function (req, res) {
  res.status(500).send("Oops Something Went Wrong!!!");
});
const port = process.env.PORT || 5000;

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});
这是我的userRouter.js文件,用于处理与用户相关的请求

router.post("/signup", signup);
router.post("/signin", signin);
router.get("/signout", signout);
这是我的user.test.js文件,用于定义测试用例

const request = require("supertest");
const express = require("express");
const userRouter = require("../routes/userRouter");

const app = express();
app.use(express.json);
app.use("/api", userRouter);
require("./config");

describe("Testing of user route", () => {
  test("should be able to register", () => {
    return request(app)
      .post("/signup")
      .send({
        name: "testing",
        email: "testing@gmail.com",
        password: "testing@gmail.com",
      })
      .then((res) => {
        console.log(res.body);
      });
  });
});
这就是我得到的错误。我无法解决这个问题。

这是错误消息

在jest.setTimeout.Error指定的5000毫秒超时内调用:

       9 | 
      10 | describe("Testing of user route", () => {
    > 11 |   test("should be able to register", () => {
         |   ^
      12 |     return request(app)
      13 |       .post("/api/signup")
      14 |       .send({

      at new Spec (C:/Users/Lenovo/AppData/Roaming/npm/node_modules/jest/node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
      at Suite.<anonymous> (test/user.test.js:11:3)
      at Object.<anonymous> (test/user.test.js:10:1)

  console.log
    Disconnecting ...

      at test/config.js:20:13

A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper
9|
10 |描述(“用户路由测试”,()=>{
>11 |测试(“应该能够注册”,()=>{
|   ^
12 |退货申请(app)
13 | post(“/api/signup”)
14 |发送({
在新规范中(C:/Users/Lenovo/AppData/Roaming/npm/node_modules/jest/node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
在套件中。(test/user.test.js:11:3)
at对象。(test/user.test.js:10:1)
console.log
断开。。。
在test/config.js:20:13
工作进程未能正常退出,已被强制退出。这可能是由于不正确的操作导致测试泄漏所致
撕裂。尝试使用--runInBand--detectOpenHandles运行以查找 泄露


请以文本形式提供错误,它不需要是图像。问题特定于Mongoose。对未打开的db连接的请求会导致挂起的承诺和超时。由于您未包含应用程序文件,因此未建立连接。@EstusFlask我已以文本形式添加错误消息,并已添加db连接,但尚未添加在这里包括该文件。然后,请提供可以重现错误的文件。不清楚是否存在db连接,也不知道测试路由中发生了什么,以及是否有其他超时原因。根据我的经验,Mongoose超时几乎总是意味着没有连接。
       9 | 
      10 | describe("Testing of user route", () => {
    > 11 |   test("should be able to register", () => {
         |   ^
      12 |     return request(app)
      13 |       .post("/api/signup")
      14 |       .send({

      at new Spec (C:/Users/Lenovo/AppData/Roaming/npm/node_modules/jest/node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)
      at Suite.<anonymous> (test/user.test.js:11:3)
      at Object.<anonymous> (test/user.test.js:10:1)

  console.log
    Disconnecting ...

      at test/config.js:20:13

A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper