mom*_*omi 7 logging e2e-testing nestjs
我在开发过程中使用 NestJS 中的默认内置记录器形成简单的日志记录。但是当我运行 e2e 测试时,控制台上没有记录器输出。确实需要这个,看看测试失败时会发生什么。package.json 中的片段:
"test:e2e": "jest --config ./test/jest-e2e.json"
和 jest-e2e.json:
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"verbose": true
}
Run Code Online (Sandbox Code Playgroud)
之后可以覆盖链上的记录器createTestingModule
const module_: TestingModule = await Test.createTestingModule({
...
})
.setLogger(new Logger())
.compile();
Run Code Online (Sandbox Code Playgroud)
幸运的是,它比 的方法要短一些app.useLogger。
此功能已添加在https://github.com/nestjs/nest/pull/6071
据我所知,您必须为每个测试设置执行此操作。
我个人认为这是荒谬的。当然,在修复测试时我需要日志,包括调试日志,并且我希望它们无需添加一些额外的代码
我创建了一个扩展 ConsoleLogger 的记录器,但没有任何改变。但我发现我需要告诉TestingModule使用它:
describe('App (e2e)', () => {
let app: INestApplication;
beforeAll(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
app.useLogger(new Logger());
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |