我目前正在使用Jest对NestJS应用程序进行端到端测试,我遇到了测试环境设置的问题。我使用supertest进行HTTPAssert,我的模板是用hbs呈现的。
以下是我使用的包的版本:
NestJS: 10
supertest: 6.3
Jest: 29.5
hbs: 4.2
字符串
当我使用node run test:e2e运行e2e测试时,会发生错误。但是,当我正常运行应用程序时,一切工作正常。下面是我的main.ts
:
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('hbs');
await app.listen(3000);
}
bootstrap();
型
这里是app.controller.ts
:
@Get()
@Render('index')
root() {
return { message: 'Hello world!' };
}
型
我的app.e2e-spec.ts
:
describe('AppController (e2e)', () => {
let app: INestApplication;
beforeEach(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
});
it('/ (GET)', () => {
return request(app.getHttpServer())
.get('/')
.expect(200)
.expect('Hello World!');
});
});
型
我是否需要为测试环境做一些额外的设置来识别视图引擎?提前致谢
1条答案
按热度按时间polhcujo1#
你已经在
bootstrap
函数中调用了app.setViewEngine()
,但是你没有在你的测试套件文件中调用bootstrap函数。我不明白你为什么觉得这会有用我猜您只需要将
app.setViewEngine()
也添加到您的app.e2e-spec.ts
即可