public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { if (!args.ObjectContainer.IsRegistered <IServiceCollectionFinder>()) { lock (registrationLock) { if (!args.ObjectContainer.IsRegistered <IServiceCollectionFinder>()) { args.ObjectContainer.RegisterTypeAs <DependencyInjectionTestObjectResolver, ITestObjectResolver>(); args.ObjectContainer.RegisterTypeAs <ServiceCollectionFinder, IServiceCollectionFinder>(); } } args.ObjectContainer.Resolve <IServiceCollectionFinder>(); } }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs <IServiceProvider>(() => { var serviceCollectionFinder = args.ObjectContainer.Resolve <IServiceCollectionFinder>(); var createScenarioServiceCollection = serviceCollectionFinder.GetCreateScenarioServiceCollection(); var services = createScenarioServiceCollection(); RegisterSpecFlowDependencies(args.ObjectContainer, services); return(services.BuildServiceProvider()); }); }; }
/// <summary> /// Custom SpecFlow plugin taking care of automatically reporting SpecFlow scenario information to TestProject. /// </summary> /// <param name="runtimePluginEvents">Runtime plugin events.</param> /// <param name="runtimePluginParameters">Parameters for the runtime plugin events.</param> /// <param name="unitTestProviderConfiguration">Unit test provider configuration.</param> public void Initialize( RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += this.RuntimePluginEvents_CustomizeGlobalDependencies; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { // temporary fix for CustomizeGlobalDependencies called multiple times // see https://github.com/techtalk/SpecFlow/issues/948 if (!args.ObjectContainer.IsRegistered <IContainerBuilderFinder>()) { args.ObjectContainer.RegisterTypeAs <AutofacTestObjectResolver, ITestObjectResolver>(); args.ObjectContainer.RegisterTypeAs <ContainerBuilderFinder, IContainerBuilderFinder>(); // workaround for parallel execution issue - this should be rather a feature in BoDi? args.ObjectContainer.Resolve <IContainerBuilderFinder>(); } }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs <IComponentContext>(() => { var containerBuilderFinder = args.ObjectContainer.Resolve <IContainerBuilderFinder>(); var createScenarioContainerBuilder = containerBuilderFinder.GetCreateScenarioContainerBuilder(); var containerBuilder = createScenarioContainerBuilder(); var container = containerBuilder.Build(); return(container.BeginLifetimeScope()); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.RegisterGlobalDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <CustomBindingFactory, IBindingFactory>(); }; }
public void Initialize( RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => RegisterRuntimeDependencies(args.ObjectContainer); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.RegisterGlobalDependencies += RuntimePluginEventsOnRegisterGlobalDependencies; runtimePluginEvents.CustomizeGlobalDependencies += RuntimePluginEvents_CustomizeGlobalDependencies; runtimePluginEvents.CustomizeScenarioDependencies += RuntimePluginEvents_CustomizeScenarioDependencies; unitTestProviderConfiguration.UseUnitTestProvider("nunit"); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <TestRunner, ITestRunner>(); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { ReporterManager.Initialize(TestingFramework.SpecFlow, new GhprSpecFlowTestDataProvider()); var specFlowHelper = new GhprSpecFlowHelper(); GhprPluginHelper.Init(specFlowHelper); runtimePluginEvents.CustomizeTestThreadDependencies += CustomizeTestThreadDependencies; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { // Wire up our Windsor resolver & container locater to the // global IOC container runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { // temporary fix for CustomizeGlobalDependencies called multiple times // see https://github.com/techtalk/SpecFlow/issues/948 if (args.ObjectContainer.IsRegistered <IContainerFinder>()) { return; } args.ObjectContainer.RegisterTypeAs <WindsorResolver, ITestObjectResolver>(); args.ObjectContainer.RegisterTypeAs <ContainerFinder, IContainerFinder>(); }; // Replace the IOC container with our windsor container // which is defined in a method marked with the [ScenarioDependecies] Attribute runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs(() => { var containerBuilderFinder = args.ObjectContainer.Resolve <IContainerFinder>(); var containerBuilder = containerBuilderFinder.GetCreateScenarioContainer(); var container = containerBuilder.Invoke(); return(container); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.RegisterGlobalDependencies += (sender, args) => args.ObjectContainer.RegisterInstanceAs <IUnitTestRuntimeProvider>(new NUnitRuntimeProvider(), "Unickq.SpecFlow.Selenium.Allure"); runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <AllureTestTracerWrapper, ITestTracer>(); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <AllureBindingInvoker, IBindingInvoker>(); runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <AllureTestTracerWrapper, ITestTracer>(); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeTestThreadDependencies += (sender, e) => { e.ObjectContainer.RegisterTypeAs <OctaneGherkinReportAddIn, ITestTracer>(); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <DSLTestRunner, ITestRunner>(); args.ObjectContainer.RegisterTypeAs <ParameterTransform, IParameterTransform>(); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { // Wire-up Windsor resolver and container locator to the global IOC container runtimePluginEvents.CustomizeGlobalDependencies += RuntimePluginEvents_CustomizeGlobalDependencies; // Replace the global IOC container without windsor container // which is defined in the method mark with attribute ScenarioDependencies runtimePluginEvents.CustomizeScenarioDependencies += RuntimePluginEvents_CustomizeScenarioDependencies; }
protected virtual void LoadPlugin(PluginDescriptor pluginDescriptor, IRuntimePluginLoader pluginLoader, RuntimePluginEvents runtimePluginEvents) { var plugin = pluginLoader.LoadPlugin(pluginDescriptor); var runtimePluginParameters = new RuntimePluginParameters { Parameters = pluginDescriptor.Parameters }; plugin.Initialize(runtimePluginEvents, runtimePluginParameters); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { if (args.SpecFlowConfiguration.StopAtFirstError) { args.ObjectContainer.RegisterTypeAs <CustomTestRunnerFactory, ITestRunnerFactory>(); } }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { if (args.SpecFlowConfiguration.StopAtFirstError) { args.ObjectContainer.RegisterTypeAs <DefaultListener, ITraceListener>(); } }; }
protected virtual void LoadPlugin(string pluginPath, IRuntimePluginLoader pluginLoader, RuntimePluginEvents runtimePluginEvents, UnitTestProviderConfiguration unitTestProviderConfigration, ITraceListener traceListener) { traceListener.WriteToolOutput($"Loading plugin {pluginPath}"); var plugin = pluginLoader.LoadPlugin(pluginPath, traceListener); var runtimePluginParameters = new RuntimePluginParameters(); plugin?.Initialize(runtimePluginEvents, runtimePluginParameters, unitTestProviderConfigration); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { if (Configuration.ReportPortal.Enabled) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, e) => { e.ObjectContainer.RegisterTypeAs <SafeBindingInvoker, IBindingInvoker>(); }; } }
/// <summary> /// Custom SpecFlow plugin taking care of automatically reporting SpecFlow scenario information to TestProject. /// </summary> /// <param name="runtimePluginEvents">Runtime plugin events.</param> /// <param name="runtimePluginParameters">Parameters for the runtime plugin events.</param> /// <param name="unitTestProviderConfiguration">Unit test provider configuration.</param> public void Initialize( RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <TestProjectBindingInvoker, IBindingInvoker>(); runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <TestProjectTestTracerWrapper, ITestTracer>(); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { ReporterManager.Initialize(TestingFramework.SpecFlow, new GhprMSTestSpecFlowTestDataProvider()); ILogger logger = new EmptyLogger(); ReporterManager.Action(r => { logger = r.Logger; }); var specFlowHelper = new GhprMSTestSpecFlowHelper(logger); GhprPluginHelper.Init(specFlowHelper); runtimePluginEvents.CustomizeTestThreadDependencies += CustomizeTestThreadDependencies; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <UnityBindingInstanceResolver, ITestObjectResolver>(); args.ObjectContainer.RegisterTypeAs <ContainerFinder, IContainerFinder>(); }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs <IUnityContainer>(() => { var containerBuilderFinder = args.ObjectContainer.Resolve <IContainerFinder>(); var containerBuilder = containerBuilderFinder.GetCreateScenarioContainer(); var container = containerBuilder.Invoke(); return(container); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <AutofacBindingInstanceResolver, IBindingInstanceResolver>(); args.ObjectContainer.RegisterTypeAs <ContainerBuilderFinder, IContainerBuilderFinder>(); }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs <IComponentContext>(() => { var containerBuilderFinder = args.ObjectContainer.Resolve <IContainerBuilderFinder>(); var createScenarioContainerBuilder = containerBuilderFinder.GetCreateScenarioContainerBuilder(); var containerBuilder = createScenarioContainerBuilder(); var container = containerBuilder.Build(); return(container.BeginLifetimeScope()); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { // temporary fix for CustomizeGlobalDependencies called multiple times // see https://github.com/techtalk/SpecFlow/issues/948 if (!args.ObjectContainer.IsRegistered <IContainerFinder>()) { // an extra lock to ensure that there are not two super fast threads re-registering the same stuff lock (_registrationLock) { if (!args.ObjectContainer.IsRegistered <IContainerFinder>()) { args.ObjectContainer.RegisterTypeAs <WindsorTestObjectResolver, ITestObjectResolver>(); args.ObjectContainer.RegisterTypeAs <ContainerFinder, IContainerFinder>(); } } // workaround for parallel execution issue - this should be rather a feature in BoDi? args.ObjectContainer.Resolve <IContainerFinder>(); } }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { args.ObjectContainer.RegisterFactoryAs(() => { var finder = args.ObjectContainer.Resolve <IContainerFinder>(); var containerBuilder = finder.GetCreateScenarioContainer(); var container = containerBuilder(); var scope = container.BeginScope(); RegisterSpecflowDependecies(args.ObjectContainer, container); args.ObjectContainer.RegisterInstanceAs(new WindsorScenarioScope(scope), dispose: true); return(container); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <ArgumentInjectionBindingInstanceResolver, IBindingInstanceResolver>(); args.ObjectContainer.RegisterTypeAs <ArgumentInjectionBindingInvoker, IBindingInvoker>(); additionalAssemblies = args.RuntimeConfiguration.AdditionalStepAssemblies; }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { var assemblies = args.ObjectContainer.Resolve <IBindingRegistry>().GetStepDefinitions().Select(m => m.Method).OfType <RuntimeBindingMethod>().Select(t => t.MethodInfo.DeclaringType.Assembly).Distinct(); var primaryAssembly = assemblies.Where(a => !additionalAssemblies.Contains(a.FullName)).First(); adapter = primaryAssembly.GetTypes().Where(t => typeof(IDependencyInjectionAdapter).IsAssignableFrom(t)).SingleOrDefault(); if (adapter == null) { adapter = primaryAssembly.GetCustomAttributes(true).OfType <DependencyAdapterAttribute>().FirstOrDefault()?.Type; } if (adapter == null) { adapter = assemblies.SelectMany(a => a.GetTypes()).Where(t => typeof(IDependencyInjectionAdapter).IsAssignableFrom(t)).Single(); } args.ObjectContainer.RegisterFactoryAs(() => { var a = (IDependencyInjectionAdapter)Activator.CreateInstance(adapter); a.Initialize(); return(a); }); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { var currentDirectory = Path.GetDirectoryName(new Uri(typeof(Plugin).Assembly.CodeBase).LocalPath); _traceLogger = TraceLogManager.Instance.WithBaseDir(currentDirectory).GetLogger <Plugin>(); Config = new ConfigurationBuilder().AddDefaults(currentDirectory).Build(); var isEnabled = Config.GetValue("Enabled", true); if (isEnabled) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, e) => { e.SpecFlowConfiguration.AdditionalStepAssemblies.Add("ReportPortal.SpecFlowPlugin"); e.ObjectContainer.RegisterTypeAs <SafeBindingInvoker, IBindingInvoker>(); }; runtimePluginEvents.CustomizeScenarioDependencies += (sender, e) => { e.ObjectContainer.RegisterTypeAs <SkippedStepsHandler, ISkippedStepHandler>(); }; } }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => { _specificTestRunnerDependencies(args.ObjectContainer); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.ConfigurationDefaults += (sender, args) => { specifyDefaults(args.SpecFlowConfiguration); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => { _specificScenarioDependencies(args.ObjectContainer); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters) { runtimePluginEvents.RegisterGlobalDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <CustomDependency, ICustomDependency>(); }