// ReSharper disable once UnusedMember.Global public DbTestFixture() { this.dbTestSetup = DbTestSetupFinder.DbTestSetup; if (dbTestSetup == null) { throw new Exception("Failed to create test fixture. Unable to determine DbTest setup class."); } this.ServiceProvider = dbTestSetup.ProduceServiceProvider(); this.config = ServiceProvider.GetService <IDbTestRunnerConfiguration>(); this.scaffolder = ServiceProvider.GetService <IDbScaffolder>(); this.context = ServiceProvider.GetService <IDbTestRunnerContext>(); this.context.ProduceSqlParametersForCustomTypes = dbTestSetup.ProduceSqlParametersForCustomTypes; // if we're not supposed to run DbTests, then don't bother setting up the runner. if (!this.config.Enabled()) { return; } // ensure the db exists, has latest migrations, etc. var initializationResult = InitializeDatabase(); if (!initializationResult.IsSuccessful) { throw new DbTestException("Failed to intialize database for tests."); } }
protected override void RegisterServices(IServiceCollection services, IDbTestRunnerContext context, IDbTestRunnerConfiguration config, IDbScaffolder scaffolder) { var efScaffolder = scaffolder as EfDbScaffolder; var efConfig = config as DbTestRunnerConfiguration; efScaffolder?.RegisterServices <TDataContext>(services, context, efConfig); }
protected virtual void RegisterServices(IServiceCollection services, IDbTestRunnerContext context, IDbTestRunnerConfiguration config, IDbScaffolder scaffolder) { }