nestjs - 无法运行测试,因为 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 {}
解决方案
将此添加到package.json
文件中的 jest 配置中:
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/$1"
}
推荐阅读
- javascript - 从角度 2 调用小程序方法
- asp.net - 从 ashx 重定向到 aspx 后,会话变量丢失
- python - 为分组数据生成具有特定长度的 RNN 序列/批次
- regex - Jenkins UI Textfinder如何设置多个正则表达式
- android - 发送有序广播时 FLAG_RECEIVER_FOREGROUND 究竟做了什么?
- mesos - mesos/dcos:暴露一个服务端点
- javascript - 如何使用 React Native 脚本在后台接收 Firebase 通知
- java - 在 Java 程序中使用 Linux Strace 命令
- php - Laravel Socialite - 谷歌登录失败“缺少必需的参数:代码”
- android - 当我尝试在选项卡之间切换时应用程序崩溃