Merge branch 'abpframework:dev' into dev

pull/17042/head
Masood Khoshgard 2 years ago committed by GitHub
commit 4c4f15f5b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -7,11 +7,15 @@ using Microsoft.AspNetCore.Routing;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Volo.Abp.Modularity;
namespace Volo.Abp.AspNetCore.TestBase;
public abstract class AbpAspNetCoreIntegratedTestBase<TStartup> : AbpTestBaseWithServiceProvider, IDisposable
where TStartup : class
/// <typeparam name="TStartupModule">
/// Can be a module type or old-style ASP.NET Core Startup class.
/// </typeparam>
public abstract class AbpAspNetCoreIntegratedTestBase<TStartupModule> : AbpTestBaseWithServiceProvider, IDisposable
where TStartupModule : class
{
protected TestServer Server { get; }
@ -39,7 +43,15 @@ public abstract class AbpAspNetCoreIntegratedTestBase<TStartup> : AbpTestBaseWit
return Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<TStartup>();
if (typeof(TStartupModule).IsAssignableTo<IAbpModule>())
{
webBuilder.UseStartup<TestStartup<TStartupModule>>();
}
else
{
webBuilder.UseStartup<TStartupModule>();
}
webBuilder.UseAbpTestServer();
})
.UseAutofac()

@ -0,0 +1,18 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Threading;
namespace Volo.Abp.AspNetCore.TestBase;
internal class TestStartup<TStartupModule>
{
public void ConfigureServices(IServiceCollection services)
{
AsyncHelper.RunSync(() => services.AddApplicationAsync(typeof(TStartupModule)));
}
public void Configure(IApplicationBuilder app)
{
AsyncHelper.RunSync(app.InitializeApplicationAsync);
}
}

@ -9,7 +9,7 @@ using Volo.Abp.AspNetCore.TestBase;
namespace MyCompanyName.MyProjectName;
public abstract class MyProjectNameWebTestBase : AbpAspNetCoreIntegratedTestBase<MyProjectNameWebTestStartup>
public abstract class MyProjectNameWebTestBase : AbpAspNetCoreIntegratedTestBase<MyProjectNameWebTestModule>
{
protected override IHostBuilder CreateHostBuilder()
{

@ -1,20 +0,0 @@
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Volo.Abp;
namespace MyCompanyName.MyProjectName;
public class MyProjectNameWebTestStartup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<MyProjectNameWebTestModule>();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.InitializeApplication();
}
}
Loading…
Cancel
Save