如何定义在单元测试执行期间使用的 Abp 语言?
How do I define the Abp language to use during unit test execution?
我正在为我的服务层创建单元测试。我使用下载模板附带的现有 UserAppService_Tests 测试作为指南。
但是我看到抛出了这个异常。
Abp.AbpException : No language defined!
我的测试继承自 GpTestBase
,后者又继承自 AbpIntegratedTestBase<GpTestModule>
GpTestModule 有:
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
所以我觉得应该没问题。
有什么线索吗?
public override void PreInitialize()
{
Configuration.UnitOfWork.Timeout = TimeSpan.FromMinutes(30);
Configuration.UnitOfWork.IsTransactional = false;
// Disable static mapper usage since it breaks unit tests (see https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2052)
Configuration.Modules.AbpAutoMapper().UseStaticMapper = false;
Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
// Use database for language management
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
RegisterFakeService<AbpZeroDbMigrator<GpDbContext>>();
Configuration.ReplaceService<IEmailSender, NullEmailSender>(DependencyLifeStyle.Transient);
}
您不应明确定义要使用的语言。
要获得本地化上下文,您应该以用户身份登录。
如果您没有在 AbpLanguages
table 中定义任何语言,就会发生这种情况。示例 here.
在我的案例中,它是由 public const bool MultiTenancyEnabled = true;
引起的。将 MultiTenancyEnabled 更改为 false,解决了问题。
我正在为我的服务层创建单元测试。我使用下载模板附带的现有 UserAppService_Tests 测试作为指南。
但是我看到抛出了这个异常。
Abp.AbpException : No language defined!
我的测试继承自 GpTestBase
,后者又继承自 AbpIntegratedTestBase<GpTestModule>
GpTestModule 有:
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
所以我觉得应该没问题。
有什么线索吗?
public override void PreInitialize()
{
Configuration.UnitOfWork.Timeout = TimeSpan.FromMinutes(30);
Configuration.UnitOfWork.IsTransactional = false;
// Disable static mapper usage since it breaks unit tests (see https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2052)
Configuration.Modules.AbpAutoMapper().UseStaticMapper = false;
Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
// Use database for language management
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
RegisterFakeService<AbpZeroDbMigrator<GpDbContext>>();
Configuration.ReplaceService<IEmailSender, NullEmailSender>(DependencyLifeStyle.Transient);
}
您不应明确定义要使用的语言。
要获得本地化上下文,您应该以用户身份登录。
如果您没有在 AbpLanguages
table 中定义任何语言,就会发生这种情况。示例 here.
在我的案例中,它是由 public const bool MultiTenancyEnabled = true;
引起的。将 MultiTenancyEnabled 更改为 false,解决了问题。