예제 #1
0
        /// <summary>
        /// Initialize the engine. This includes initializing mono addins,
        /// setting the trace level and creating the standard set of services 
        /// used in the Engine.
        /// 
        /// This interface is not normally called by user code. Programs linking 
        /// only to the nunit.engine.api assembly are given a
        /// pre-initialized instance of TestEngine. Programs 
        /// that link directly to nunit.engine usually do so
        /// in order to perform custom initialization.
        /// </summary>
        public void Initialize()
        {
#if NUNIT_ENGINE
            if (!AddinManager.IsInitialized)
            {
                // Pass in the current nunit.engine assembly because mono.addins uses the executing assembly by
                // default and that might be in a an entirely different directory than the runner that is using it.
                AddinManager.Initialize(Assembly.GetExecutingAssembly(), NUnitConfiguration.ApplicationDirectory);
                AddinManager.Registry.Update(null);
            }
#endif

            SettingsService settingsService = new SettingsService(true);

            if(InternalTraceLevel == InternalTraceLevel.Default)
                InternalTraceLevel = settingsService.GetSetting("Options.InternalTraceLevel", InternalTraceLevel.Off);

            if(InternalTraceLevel != InternalTraceLevel.Off)
            {
                var logName = string.Format("InternalTrace.{0}.log", Process.GetCurrentProcess().Id);
                InternalTrace.Initialize(Path.Combine(WorkDirectory, logName), InternalTraceLevel);
            }

            Services.Add(settingsService);
            Services.Add(new DomainManager());
            Services.Add(new DriverService());

#if NUNIT_ENGINE
            Services.Add(new RecentFilesService());
            Services.Add(new ProjectService());
            Services.Add(new RuntimeFrameworkService());
            Services.Add(new DefaultTestRunnerFactory());
            Services.Add(new TestAgency());
            Services.Add(new ResultService());
#else
            Services.Add(new CoreTestRunnerFactory());
#endif

            Services.ServiceManager.StartServices();
        }
예제 #2
0
        /// <summary>
        /// Create and initialize the standard set of services
        /// used in the Engine. This interface is not normally
        /// called by user code. Programs linking only to 
        /// only to the nunit.engine.api assembly are given a
        /// pre-initialized instance of TestEngine. Programs 
        /// that link directly to nunit.engine usually do so
        /// in order to perform custom initialization.
        /// </summary>
        public void InitializeServices()
        {
            SettingsService settingsService = new SettingsService("NUnit30Settings.xml", true);

            if(InternalTraceLevel == InternalTraceLevel.Default)
                InternalTraceLevel = (InternalTraceLevel)settingsService.GetSetting("Options.InternalTraceLevel", InternalTraceLevel.Off);

            if(InternalTraceLevel != InternalTraceLevel.Off)
            {
                var logName = string.Format("InternalTrace.{0}.log", Process.GetCurrentProcess().Id);
                InternalTrace.Initialize(Path.Combine(WorkDirectory, logName), InternalTraceLevel);
            }

            this.Services.Add(settingsService);
            this.Services.Add(new RecentFilesService());
            this.Services.Add(new DomainManager());
            this.Services.Add(new ProjectService());
            this.Services.Add(new RuntimeFrameworkSelector());
            this.Services.Add(new DefaultTestRunnerFactory());
            this.Services.Add(new DriverFactory());
            this.Services.Add(new TestAgency());

            this.Services.ServiceManager.InitializeServices();
        }
예제 #3
0
        /// <summary>
        /// Initialize the engine. This includes initializing mono addins,
        /// setting the trace level and creating the standard set of services 
        /// used in the Engine.
        /// 
        /// This interface is not normally called by user code. Programs linking 
        /// only to the nunit.engine.api assembly are given a
        /// pre-initialized instance of TestEngine. Programs 
        /// that link directly to nunit.engine usually do so
        /// in order to perform custom initialization.
        /// </summary>
        public void Initialize()
        {
            SettingsService settingsService = new SettingsService(true);

            if(InternalTraceLevel == InternalTraceLevel.Default)
                InternalTraceLevel = settingsService.GetSetting("Options.InternalTraceLevel", InternalTraceLevel.Off);

            if(InternalTraceLevel != InternalTraceLevel.Off)
            {
                var logName = string.Format("InternalTrace.{0}.log", Process.GetCurrentProcess().Id);
                InternalTrace.Initialize(Path.Combine(WorkDirectory, logName), InternalTraceLevel);
            }

            Services.Add(settingsService);
            Services.Add(new DomainManager());
#if NUNIT_ENGINE
            Services.Add(new ExtensionService());
#endif
            Services.Add(new DriverService());

#if NUNIT_ENGINE
            Services.Add(new RecentFilesService());
            Services.Add(new ProjectService());
            Services.Add(new RuntimeFrameworkService());
            Services.Add(new DefaultTestRunnerFactory());
            Services.Add(new TestAgency());
            Services.Add(new ResultService());
#else
            Services.Add(new CoreTestRunnerFactory());
#endif

            Services.ServiceManager.StartServices();
        }