Nestjs e2e测试|在控制器中找不到模块



我已经开始学习在巢测试和我卡住了。我正在使用端到端测试。

当我尝试运行测试时,我得到一个错误消息:

FAIL  test/category.e2e-spec.ts
● Test suite failed to run
Cannot find module 'src/auth/jwt-auth-unprotected.guard' from '../src/category/category.controller.ts'
Require stack:
C:/Users/losak/OneDrive/Desktop/back.zumzak/src/category/category.controller.ts
C:/Users/losak/OneDrive/Desktop/back.zumzak/src/category/category.module.ts
category.e2e-spec.ts
13 | } from '@nestjs/common';
14 | import { Request } from 'express';
> 15 | import { JwtAuthUnprotectedGuard } from 'src/auth/jwt-auth-unprotected.guard';
| ^
16 | import { JwtAuthGuard } from 'src/auth/jwt-auth.guard';
17 | import { CategoryService } from './category.service';
18 | import { CreateCategoryDto } from './dto/create-category.dto';
at Resolver._throwModNotFoundError (../node_modules/.pnpm/jest-resolve@28.1.3/node_modules/jest-resolve/build/resolver.js:491:11)
at Object.<anonymous> (../src/category/category.controller.ts:15:1)

这是我的规格代码(category.e2e- specs .ts):

import { Test } from '@nestjs/testing';
import { CategoryModule } from '../src/category/category.module';
import * as request from 'supertest';
describe('CategoryController (e2e)', () => {
let app: INestApplication;
beforeAll(async () => {
const moduleFixture = await Test.createTestingModule({
imports: [CategoryModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
});
it('/ (GET)', () => {
return request(app.getHttpServer())
.get('/category')
.expect(200)
});
}); 

我的模块(category.module.ts):

import { Module } from '@nestjs/common';
import { CategoryController } from './category.controller';
import { ShopModule } from 'src/shop/shop.module';
import { FileService } from 'src/file/file.service';
import { PrismaService } from 'src/prisma.service';
import { CategoryService } from './category.service';
@Module({
imports: [ShopModule],
controllers: [CategoryController],
providers: [CategoryService, PrismaService, FileService],
})
export class CategoryModule {}

这里是我的控制器(category。controller。ts) import:

import { Request } from 'express';
import { JwtAuthUnprotectedGuard } from 'src/auth/jwt-auth-unprotected.guard';
import { JwtAuthGuard } from 'src/auth/jwt-auth.guard';
import { CategoryService } from './category.service';
import { CreateCategoryDto } from './dto/create-category.dto';
import { ParamsCategoryDto } from './dto/params-category.dto';
import { ParamsSearchDto } from './dto/params-search.dto';
import { UpdateCategoryDto } from './dto/update-category.dto';

我该怎么办?

解释如下:

概览不要使用绝对路径,这些在编译时丢失,使用相对路径代替.

如果使用VSCode在typescript.preferences.importModuleSpecifier设置中将导入设置为相对的,则默认是最短的。

最新更新