Пример #1
0
        public MasterTestRunner(IServiceLocator services, TestPackage package)
        {
            if (services == null)
            {
                throw new ArgumentNullException("services");
            }
            if (package == null)
            {
                throw new ArgumentNullException("package");
            }

            _services   = services;
            TestPackage = package;

            // Get references to the services we use
            _projectService    = _services.GetService <IProjectService>();
            _testRunnerFactory = _services.GetService <ITestRunnerFactory>();

            _packageAnalyzer = _services.GetService <TestPackageAnalyzer>();
            _runtimeService  = _services.GetService <IRuntimeFrameworkService>();

            _eventDispatcher = _services.GetService <TestEventDispatcher>();

            // Last chance to catch invalid settings in package,
            // in case the client runner missed them.
            _packageAnalyzer.ValidatePackageSettings(package);
        }
        public void Initialize()
        {
            // Add all services needed by any of our TestEngineRunners
            _services = new ServiceContext();
            _services.Add(new FakeExtensionService());
            _services.Add(new FakeProjectService());
            _services.Add(new TestFrameworkService());
            var packageSettingsService = new TestPackageAnalyzer();

            _services.Add(packageSettingsService);
#if !NETCOREAPP2_1
            _services.Add(new FakeRuntimeService());
            //_services.Add(new TestAgency("ProcessRunnerTests", 0));
#endif
            //_services.Add(new FakeTestRunnerFactory());
            _services.ServiceManager.StartServices();

            var mockAssemblyPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "mock-assembly.dll");

            var assemblies = new List <string>();
            for (int i = 0; i < _numAssemblies; i++)
            {
                assemblies.Add(mockAssemblyPath);
            }

            _package = new TestPackage(assemblies);
            packageSettingsService.ApplyImageSettings(_package);

            // HACK: Depends on the fact that all TestEngineRunners support this constructor
            _runner = (TRunner)Activator.CreateInstance(typeof(TRunner), _services, _package);
        }