如何在节点中启动柴测试?

问题描述

我有一个节点/打字稿应用程序。我正在尝试使用 chai 和 chai-http 测试路由。当我写一个显式名称时,我可以启动一个文件yarn test myroute.test.ts,但根目录下的 yarn test 什么也不做。

此外,从不执行测试。我只在终端中收到 Done in 0.06s.。没有“通过”或“失败”。

测试如下:

import chai from "chai";
import chaiHttp from "chai-http";
import { server } from "../index";

chai.use(chaiHttp);
const chaiApi = chai.request(server);
describe("GET /user/:id",() => {
  it("return user information",async () => {
    const res = await chaiApi
      .get("/user/123")
      .set("Cookie","_id=567;locale=en");
    chai.assert.equal(res.status,200);
  });
});

package.json 脚本是:"test": "test"。我认为这是完全错误的,但是 chai doc 没有说要在这里写什么。

解决方法

chai 是一个断言库,类似于 Node 的内置 assert。它不包含测试运行器。您需要使用 mocha 来收集和运行您声明的测试套件和测试用例。

添加 mocha 测试框架后,您可以像这样声明 npm test 脚本:

"test": "mocha --require ts-node/register --timeout 5000",

为了运行 TS 测试文件,我们需要指定 ts-node/register。像这样使用它:

yarn test myroute.test.ts

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...