首页 > 解决方案 > 无法运行测试,因为 Nest 找不到模块

问题描述

我遵循了单元测试示例,但我无法运行测试,我不知道为什么它不起作用。我有以下错误:Cannot find module 'src/Application/Auth/Command/LoginCommandHandler' from 'LoginCommandHandler.spec.ts'但我的处理程序已正确导入。谢谢你的帮助。

这是我的单元测试:

import { LoginCommandHandler } from 'src/Application/Auth/Command/LoginCommandHandler';
import { UserRepository } from 'src/Infrastructure/User/Repository/UserRepository';
import { EncryptionAdapter } from 'src/Infrastructure/Adapter/EncryptionAdapter';

// ...

const module: TestingModule = await Test.createTestingModule({
      providers: [LoginCommandHandler, UserRepository, EncryptionAdapter],
    }).compile();

    userRepository = module.get(UserRepository);
    encryptionAdapter = module.get(EncryptionAdapter);
    handler = new LoginCommandHandler(userRepository, encryptionAdapter);

这是我的 src/Application/Auth/Command/LoginCommandHandler/LoginCommandHandler :

export class LoginCommandHandler {
  constructor(
    @Inject('IUserRepository')
    private readonly userRepository: IUserRepository,
    @Inject('IEncryptionAdapter')
    private readonly encryptionAdapter: IEncryptionAdapter,
  ) {}
// ...

这是我的 AuthModule :

@Module({
  imports: [
    // ...
    TypeOrmModule.forFeature([User]),
  ],
  providers: [
    // ...
    { provide: 'IUserRepository', useClass: UserRepository },
    { provide: 'IEncryptionAdapter', useClass: EncryptionAdapter },
    LoginCommandHandler,
  ],
})
export class AuthModule {}

标签: nestjs

解决方案


将此添加到package.json文件中的 jest 配置中:

"moduleNameMapper": {
  "^src/(.*)$": "<rootDir>/$1"
}

推荐阅读