我想尽可能地对我的应用程序进行单元测试和e2e测试,我的目标是覆盖率达到101%。我的安装程序现在遇到的问题是,来自typeorm的@Column装饰器使用箭头功能来设置默认值,例如数据库更新时的当前时间戳。笑话测试范围未涵盖此箭头功能。消息是:statement not covered
我使用以下代码运行代码覆盖率:jest --coverage
。
我的版本:
"jest": "^24.9.0","typeorm": "^0.2.20"
package.json中的最佳配置:
{
"jest": {
"moduleFileExtensions": [
"js","json","ts"
],"rootDir": "src","testRegex": ".spec.ts$","transform": {
"^.+\\.(t|j)s$": "ts-jest"
},"coverageDirectory": "../build/coverage","testEnvironment": "node","coverageThreshold": {
"global": {
"branches": 80,"functions": 80,"lines": 80,"statements": -10
}
}
},}
我的实体看起来像这样:
import { Column,Entity,PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Role {
@PrimaryGeneratedColumn()
id: number;
@Column()
tenantId: number;
@Column({ type: 'timestamp',update: false,default: () => 'CURRENT_TIMESTAMP()' })
createdAt: Date;
@Column({ type: 'timestamp',default: () => 'CURRENT_TIMESTAMP()',onUpdate: 'CURRENT_TIMESTAMP()' })
updatedAt: Date;
}
此实体的覆盖范围:
(要发布图片,我需要10个信誉-.-):https://i.ibb.co/FYQgstP/Screenshot-2019-11-07-11-46-45.png