Skip to content

Commit b8673d5

Browse files
committed
Disable transactions for Web.Tests project
1 parent b896333 commit b8673d5

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

test/AbpCompanyName.AbpProjectName.Web.Tests/AbpProjectNameWebTestModule.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
using Abp.AspNetCore.TestBase;
33
using Abp.Modules;
44
using Abp.Reflection.Extensions;
5+
using AbpCompanyName.AbpProjectName.EntityFrameworkCore;
56
using AbpCompanyName.AbpProjectName.Web.Startup;
7+
using Castle.MicroKernel.Registration;
8+
using Castle.Windsor.MsDependencyInjection;
9+
using Microsoft.EntityFrameworkCore;
10+
using Microsoft.Extensions.DependencyInjection;
611

712
namespace AbpCompanyName.AbpProjectName.Web.Tests
813
{
@@ -12,9 +17,36 @@ namespace AbpCompanyName.AbpProjectName.Web.Tests
1217
)]
1318
public class AbpProjectNameWebTestModule : AbpModule
1419
{
20+
public override void PreInitialize()
21+
{
22+
Configuration.UnitOfWork.IsTransactional = false; //EF Core InMemory DB does not support transactions.
23+
SetupInMemoryDb();
24+
}
25+
1526
public override void Initialize()
1627
{
1728
IocManager.RegisterAssemblyByConvention(typeof(AbpProjectNameWebTestModule).GetAssembly());
1829
}
30+
31+
private void SetupInMemoryDb()
32+
{
33+
var services = new ServiceCollection()
34+
.AddEntityFrameworkInMemoryDatabase();
35+
36+
var serviceProvider = WindsorRegistrationHelper.CreateServiceProvider(
37+
IocManager.IocContainer,
38+
services
39+
);
40+
41+
var builder = new DbContextOptionsBuilder<AbpProjectNameDbContext>();
42+
builder.UseInMemoryDatabase().UseInternalServiceProvider(serviceProvider);
43+
44+
IocManager.IocContainer.Register(
45+
Component
46+
.For<DbContextOptions<AbpProjectNameDbContext>>()
47+
.Instance(builder.Options)
48+
.LifestyleSingleton()
49+
);
50+
}
1951
}
2052
}

test/AbpCompanyName.AbpProjectName.Web.Tests/Startup.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
using Microsoft.EntityFrameworkCore;
1212
using Microsoft.Extensions.DependencyInjection;
1313
using Microsoft.Extensions.Logging;
14-
using Microsoft.EntityFrameworkCore.Diagnostics;
1514

1615
namespace AbpCompanyName.AbpProjectName.Web.Tests
1716
{
@@ -52,8 +51,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF
5251
private void UseInMemoryDb(IServiceProvider serviceProvider)
5352
{
5453
var builder = new DbContextOptionsBuilder<AbpProjectNameDbContext>();
55-
builder.UseInMemoryDatabase(Guid.NewGuid().ToString()).UseInternalServiceProvider(serviceProvider)
56-
.ConfigureWarnings(w => w.Ignore(InMemoryEventId.TransactionIgnoredWarning));
54+
builder.UseInMemoryDatabase(Guid.NewGuid().ToString()).UseInternalServiceProvider(serviceProvider);
5755
var options = builder.Options;
5856

5957
var iocManager = serviceProvider.GetRequiredService<IIocManager>();

0 commit comments

Comments
 (0)