【发布时间】:2021-06-30 14:34:16
【问题描述】:
我有一个节点/打字稿服务器。我希望用 supertest 测试 api 路由。我已经编写了我的第一个测试,但无法启动它,因为
TypeError [ERR_UNKNOWN_FILE_EXTENSION]:/Users/myname/Desktop/Code/Reapr/server/src/tests/search.test.ts 的未知文件扩展名“.ts”
test.ts 文件是:
import request from "supertest";
import { server } from "../index";
describe("GET /user/:id", () => {
it("return user information", (done) => {
request(server)
.get("/user/123")
.set("Accept", "application/json")
.expect("Content-Type", /json/)
.expect(200, done);
});
});
package.json 是:
{
"name": "my-server",
"version": "1.0.0",
"main": "index.js",
"license": "",
"scripts": {
"build": "rimraf ./build && tsc",
"dev": "nodemon",
"lint": "eslint . --ext .js,.ts",
"start": "npm run build && node build/index.js",
"test": "node src/tests/search.test.ts"
},
"type": "module",
"dependencies": {
"bcrypt": "^5.0.1",
"body-parser": "^1.19.0",
"cloudinary": "^1.25.1",
"compression": "^1.7.4",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-rate-limit": "^5.2.6",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.12.3",
"multer": "^1.4.2",
"nodemailer": "^6.5.0",
"nodemailer-express-handlebars": "^4.0.0",
"socket.io": "^4.0.1",
"stripe": "^8.142.0"
},
"devDependencies": {
"@types/express": "^4.17.11",
"@types/jest": "^26.0.22",
"@types/mongoose": "^5.10.4",
"@types/node": "^14.14.37",
"@types/socket.io": "^2.1.13",
"@types/stripe": "^8.0.417",
"@typescript-eslint/eslint-plugin": "^4.20.0",
"@typescript-eslint/parser": "^4.20.0",
"babel-plugin-module-resolver": "^4.1.0",
"dotenv": "^8.2.0",
"eslint": "^7.23.0",
"nodemon": "^2.0.7",
"rimraf": "^3.0.2",
"supertest": "^6.1.3",
"ts-node": "^9.1.1",
"typescript": "^4.2.3"
}
}
此外,仅当我明确编写脚本"test": node src/tests/search.test.ts" 时才会出现此错误。如果我写"test": "jest",我得到这个错误:
开玩笑:找不到命令
那么,如果可能的话,如何一次正确启动我的超级测试文件,而不是更改每个文件的脚本行?
【问题讨论】: