在给 vemojs 做完各种测试之后,导师很快提出了新的要求,给 clousebase-cli 编写测试用例。有个问题摆在眼前:它是用 typescript 编写,所以需要配置相关环境。
好吧,不说废话了,直接上干货。
jest.config.js
配置内容如下,解释在注释里面:
module.exports = {
roots: [
"<rootDir>/test" // 测试目录
],
transform: {
"^.+\\\\\\\\.tsx?$": "ts-jest" // 匹配 .ts 或者 .tsx 结尾的文件
},
collectCoverage: true, // 统计覆盖率
testEnvironment: "node", // 测试环境
setupFilesAfterEnv: [
"<rootDir>/jest.setup.js" // 之后再说
],
// 不算入覆盖率的文件夹
coveragePathIgnorePatterns: [
"<rootDir>/node_modules/",
"<rootDir>/test/",
"<rootDir>/deps/"
]
};
上面有个 jest.setup.js
,它的内容是: jest.setTimeout(60000)
。因为有时候网速很慢,api 请求延时会很高,所以这个就是设置请求超时时间为 1 分钟。
最坑的一点是,除了 jest
的配置文件,还要修改 typescript 对应的文件, tsconfig.json
内容如下。types 中必须添加 jest
,否则找不到 expect
、 describe
等变量的定义。
{
"compilerOptions": {
"types": ["node", "jest"]
}
}
总之,cloudbase-cli 的测试用例写的比 vemo 好。
持续继承测试我们借助 https://travis-ci.org/ 这个平台,它的工作流程非常简单:
它的优点在于,测试代码推上去后,直接在账号下的控制台就能看到测试结果,非常方便;而且可以在配置文件中,指明多个测试环境,比如 node 有 6、8、10,让测试更具有信服力。
我把样例代码放在了 try-travis-ci 仓库下,可以跑一下看看。下面是 .travis.yml 文件内容。
sudo: false
language: "node_js"
node_js:
- "8"
- "10"
install:
- npm install
script: npm run test
看见了吗,就是下面贼酷炫的界面,登陆用户就能看到了:<br />