/// <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( GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.CustomizeDependencies += (sender, args) => CustomizeGeneratorDependencies(args.ObjectContainer); }
public void Initialize( RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeScenarioDependencies += (sender, args) => RegisterRuntimeDependencies(args.ObjectContainer); }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { unitTestProviderConfiguration.UseUnitTestProvider(MasterGeneratorProvider.Name); generatorPluginEvents.RegisterDependencies += CustomizeDependencies; }
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) { 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) { ReporterManager.Initialize(TestingFramework.SpecFlow, new GhprSpecFlowTestDataProvider()); var specFlowHelper = new GhprSpecFlowHelper(); GhprPluginHelper.Init(specFlowHelper); runtimePluginEvents.CustomizeTestThreadDependencies += CustomizeTestThreadDependencies; }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.RegisterDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <ExternalDataTestGenerator, ITestGenerator>(); args.ObjectContainer.RegisterTypeAs <ExternalDataFeaturePatcher, IExternalDataFeaturePatcher>(); args.ObjectContainer.RegisterTypeAs <TestDataProvider, ITestDataProvider>(); }; }
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); }
private static void LoadPlugin(PluginDescriptor pluginDescriptor, IGeneratorPluginLoader pluginLoader, GeneratorPluginEvents generatorPluginEvents, UnitTestProviderConfiguration unitTestProviderConfigration) { var plugin = pluginLoader.LoadPlugin(pluginDescriptor); var generatorPluginParameters = new GeneratorPluginParameters { Parameters = pluginDescriptor.Parameters }; plugin.Initialize(generatorPluginEvents, generatorPluginParameters, unitTestProviderConfigration); }
public void Initialize( GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.RegisterDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <SharedBackgroundFeatureGeneratorProvider, IFeatureGeneratorProvider>(); args.ObjectContainer.RegisterTypeAs <SharedBackgroundFeatureGenerator, IFeatureGenerator>(); }; }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.RegisterDependencies += (sender, args) => { args.ObjectContainer.RegisterTypeAs <ExternalDataTestGenerator, ITestGenerator>(); args.ObjectContainer.RegisterTypeAs <SpecificationProvider, ISpecificationProvider>(); args.ObjectContainer.RegisterTypeAs <DataSourceLoaderFactory, IDataSourceLoaderFactory>(); args.ObjectContainer.RegisterTypeAs <CsvLoader, IDataSourceLoader>("CSV"); args.ObjectContainer.RegisterTypeAs <ExcelLoader, IDataSourceLoader>("Excel"); }; }
private void LoadPlugins( ObjectContainer container, GeneratorPluginEvents generatorPluginEvents, UnitTestProviderConfiguration unitTestProviderConfiguration, IEnumerable <string> generatorPlugins) { // initialize plugins that were registered from code foreach (var generatorPlugin in container.Resolve <IDictionary <string, IGeneratorPlugin> >().Values) { // these plugins cannot have parameters generatorPlugin.Initialize(generatorPluginEvents, new GeneratorPluginParameters(), unitTestProviderConfiguration); } var pluginLoader = container.Resolve <IGeneratorPluginLoader>(); foreach (string generatorPlugin in generatorPlugins) { //todo: should set the parameters, and do not pass empty var pluginDescriptor = new PluginDescriptor(Path.GetFileNameWithoutExtension(generatorPlugin), generatorPlugin, PluginType.Generator, string.Empty); LoadPlugin(pluginDescriptor, pluginLoader, generatorPluginEvents, unitTestProviderConfiguration); } }
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 <IContainerBuilderFinder>()) { // an extra lock to ensure that there are not two super fast threads re-registering the same stuff lock (_registrationLock) { if (!args.ObjectContainer.IsRegistered <IContainerBuilderFinder>()) { args.ObjectContainer .RegisterTypeAs <SimpleInjectorTestObjectResolver, 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(() => { var containerBuilderFinder = args.ObjectContainer.Resolve <IContainerBuilderFinder>(); var createScenarioContainerBuilder = containerBuilderFinder.GetCreateScenarioContainerBuilder(); var container = createScenarioContainerBuilder(); RegisterSpecFlowDependencies(args.ObjectContainer, container); container.Verify(); return(container); }); }; }
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()); }); }; }
public AnalyticsEventProvider(IUserUniqueIdStore userUniqueIdStore, UnitTestProviderConfiguration unitTestProviderConfiguration) { _userUniqueIdStore = userUniqueIdStore; _unitTestProvider = unitTestProviderConfiguration.UnitTestProvider; }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.ConfigurationDefaults += (sender, args) => { specifyDefaults(args.SpecFlowProjectConfiguration); }; }
protected virtual void LoadPlugins(IRuntimeConfigurationProvider configurationProvider, ObjectContainer container, RuntimePluginEvents runtimePluginEvents, SpecFlowConfiguration specFlowConfiguration, UnitTestProviderConfiguration unitTestProviderConfigration, Assembly testAssembly) { // initialize plugins that were registered from code foreach (var runtimePlugin in container.Resolve <IDictionary <string, IRuntimePlugin> >().Values) { // these plugins cannot have parameters runtimePlugin.Initialize(runtimePluginEvents, new RuntimePluginParameters(), unitTestProviderConfigration); } // load & initalize parameters from configuration var pluginLocator = container.Resolve <IRuntimePluginLocator>(); var pluginLoader = container.Resolve <IRuntimePluginLoader>(); var traceListener = container.Resolve <ITraceListener>(); var assemblyLocation = testAssembly != null && !testAssembly.IsDynamic ? testAssembly.Location : null; foreach (var pluginPath in pluginLocator.GetAllRuntimePlugins(Path.GetDirectoryName(assemblyLocation))) { LoadPlugin(pluginPath, pluginLoader, runtimePluginEvents, unitTestProviderConfigration, traceListener); } }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.RegisterDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <CustomDependency, ICustomDependency>(); }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.CustomizeDependencies += (sender, args) => { if (args.SpecFlowProjectConfiguration.SpecFlowConfiguration.StopAtFirstError) { args.ObjectContainer.RegisterTypeAs <CustomHeaderWriter, ITestHeaderWriter>(); } }; }
public AnalyticsEventProvider(IUserUniqueIdStore userUniqueIdStore, UnitTestProviderConfiguration unitTestProviderConfiguration, IEnvironmentWrapper environmentWrapper) { _userUniqueIdStore = userUniqueIdStore; _environmentWrapper = environmentWrapper; _unitTestProvider = unitTestProviderConfiguration.UnitTestProvider; }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { generatorPluginEvents.CustomizeDependencies += CustomizeDependencies; }
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, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.RegisterGlobalDependencies += (sender, args) => args.ObjectContainer.RegisterTypeAs <CustomDependency, ICustomDependency>(); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.ConfigurationDefaults += (sender, args) => { specifyDefaults(args.SpecFlowConfiguration); }; }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeGlobalDependencies += (sender, args) => { if (args.SpecFlowConfiguration.StopAtFirstError) { args.ObjectContainer.RegisterTypeAs <DefaultListener, ITraceListener>(); } }; }
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { unitTestProviderConfiguration.UseUnitTestProvider("nunit"); }
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration) { runtimePluginEvents.CustomizeTestThreadDependencies += (sender, args) => { _specificTestRunnerDependencies(args.ObjectContainer); }; }
protected virtual void LoadPlugins(IRuntimeConfigurationProvider configurationProvider, ObjectContainer container, RuntimePluginEvents runtimePluginEvents, SpecFlowConfiguration specFlowConfiguration, UnitTestProviderConfiguration unitTestProviderConfigration, Assembly testAssembly) { // initialize plugins that were registered from code foreach (var runtimePlugin in container.Resolve <IDictionary <string, IRuntimePlugin> >().Values) { // these plugins cannot have parameters runtimePlugin.Initialize(runtimePluginEvents, new RuntimePluginParameters(), unitTestProviderConfigration); } // load & initalize parameters from configuration var pluginLocator = container.Resolve <IRuntimePluginLocator>(); var pluginLoader = container.Resolve <IRuntimePluginLoader>(); var traceListener = container.Resolve <ITraceListener>(); foreach (var pluginPath in pluginLocator.GetAllRuntimePlugins()) { // Should not log error if TestAssembly does not have a RuntimePlugin attribute var traceMissingPluginAttribute = !testAssembly.Location.Equals(pluginPath); LoadPlugin(pluginPath, pluginLoader, runtimePluginEvents, unitTestProviderConfigration, traceListener, traceMissingPluginAttribute); } }