예제 #1
0
        // 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.");
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
 protected virtual void RegisterServices(IServiceCollection services, IDbTestRunnerContext context, IDbTestRunnerConfiguration config, IDbScaffolder scaffolder)
 {
 }