问题描述
我有一个节点/打字稿应用程序。我正在尝试使用 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