protected override void OnConfigure(LightBddConfiguration configuration) { configuration.ReportWritersConfiguration() .Add(new ReportFileWriter(new PlainTextReportFormatter(), "~" + Path.DirectorySeparatorChar + "Reports" + Path.DirectorySeparatorChar + "FeaturesReport.txt")); configuration.DependencyContainerConfiguration().UseDefaultContainer(ConfigureContainer); }
public MsTest2MetadataProvider(LightBddConfiguration configuration) : base(configuration.NameFormatterConfiguration().Formatter, configuration.StepTypeConfiguration(), configuration.CultureInfoProviderConfiguration().CultureInfoProvider, configuration.ValueFormattingConfiguration()) { }
protected override void OnConfigure(LightBddConfiguration configuration) { configuration .ReportWritersConfiguration() .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\FeaturesReport.txt") .AddFileWriter <HtmlReportFormatter>("~\\Reports\\FeaturesReport.html"); }
/// <summary> /// This method allows to customize LightBDD behavior. /// The code below configures LightBDD to produce also a plain text report after all tests are done. /// More information on what can be customized can be found on wiki: https://github.com/LightBDD/LightBDD/wiki/LightBDD-Configuration#configurable-lightbdd-features /// </summary> protected override void OnConfigure(LightBddConfiguration configuration) { configuration .ReportWritersConfiguration() .AddFileWriter <XmlReportFormatter>("~\\Reports\\FeaturesReport.xml") .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt"); }
private static void OnConfigure(LightBddConfiguration configuration) { configuration .ReportWritersConfiguration() .Clear() .AddFileWriter <PlainTextReportFormatter>("~\\Reports\\{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt"); }
public void Get_should_instantiate_and_store_feature_config() { var cfg = new LightBddConfiguration(); Assert.IsNotNull(cfg.Get <SealableFeatureConfig>()); Assert.AreSame(cfg.Get <SealableFeatureConfig>(), cfg.Get <SealableFeatureConfig>()); }
private static IMetadataProvider CreateMetadataProvider(LightBddConfiguration configuration) { return(new MsTest2MetadataProvider( configuration.NameFormatterConfiguration().Formatter, configuration.StepTypeConfiguration(), configuration.CultureInfoProviderConfiguration().CultureInfoProvider)); }
protected override void OnConfigure(LightBddConfiguration configuration) { // some example customization of report writers configuration .ReportWritersConfiguration() .AddFileWriter <HtmlReportFormatter>("..\\..\\..\\Reports\\FeaturesReport.html"); }
public void Seal_should_make_future_config_sealed() { var cfg = new LightBddConfiguration(); cfg.Seal(); Assert.IsTrue(cfg.Get <SealableFeatureConfig>().IsSealed); }
/// <summary> /// Constructor. /// </summary> /// <param name="runnerRepository">Runner factory instance that would be used for instantiating runners.</param> /// <param name="featureAggregator">Feature aggregator instance used for aggregating feature results on coordinator disposal.</param> /// <param name="configuration"><see cref="LightBddConfiguration"/> instance used to initialize LightBDD tests.</param> protected FeatureCoordinator(FeatureRunnerRepository runnerRepository, IFeatureAggregator featureAggregator, LightBddConfiguration configuration) { _featureAggregator = featureAggregator; RunnerRepository = runnerRepository; Configuration = configuration; //TODO: Rework in LightBDD 3.X to use the same instance as CoreMetadataProvider (introduce IoC?) ValueFormattingService = new ValueFormattingService(Configuration); }
private static LightBddConfiguration Configure(Action <LightBddConfiguration> onConfigure) { var configuration = new LightBddConfiguration(); configuration.NameFormatterConfiguration().UpdateFormatter(DefaultNameFormatter.Instance); onConfigure(configuration); return(configuration); }
protected override void OnConfigure(LightBddConfiguration configuration) { var defaultProvider = configuration.ScenarioProgressNotifierConfiguration().NotifierProvider; configuration .ScenarioProgressNotifierConfiguration() .UpdateNotifierProvider <object>(feature => new DelegatingScenarioProgressNotifier(defaultProvider(feature), new DefaultProgressNotifier(x => CapturedNotifications.Enqueue(x)))); }
public void Configuration_should_be_sealable() { var lighbddConfig = new LightBddConfiguration(); var cfg = lighbddConfig.Get <CultureInfoProviderConfiguration>(); lighbddConfig.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.UpdateCultureInfoProvider(Mock.Of <ICultureInfoProvider>())); }
public void Configuration_should_be_sealable() { var lighbddConfig = new LightBddConfiguration(); var cfg = lighbddConfig.Get <ScenarioProgressNotifierConfiguration>(); lighbddConfig.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.UpdateNotifierProvider(Mock.Of <IScenarioProgressNotifier>)); }
public void Configuration_should_be_sealable() { var config = new LightBddConfiguration(); var cfg = config.Get <ExceptionHandlingConfiguration>(); config.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.UpdateExceptionDetailsFormatter(ex => "abc")); }
public void Configuration_should_be_sealable() { var lighbddConfig = new LightBddConfiguration(); var cfg = lighbddConfig.Get <NameFormatterConfiguration>(); lighbddConfig.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.UpdateFormatter(Mock.Of <INameFormatter>())); }
public void WithFrameworkDefaults_should_enable_default_scenario_decorators() { var configuration = new LightBddConfiguration().WithFrameworkDefaults().ExecutionExtensionsConfiguration(); Assert.That(configuration .ScenarioDecorators .Select(x => x.GetType()) .ToArray(), Is.Empty); }
public void LightBddConfiguration_should_accept_config_not_supporting_sealing() { Assert.IsNotNull(new LightBddConfiguration().Seal().Get <NotSealableFeatureConfig>()); var cfg = new LightBddConfiguration(); var feat = cfg.Get <NotSealableFeatureConfig>(); cfg.Seal(); Assert.AreSame(feat, cfg.Get <NotSealableFeatureConfig>()); }
protected override void OnConfigure(LightBddConfiguration configuration) { configuration.DependencyContainerConfiguration().UseDefaultContainer(cfg => { cfg.RegisterInstance(new TestOutputHelper(), new RegistrationOptions().As <ITestOutputHelper>()); }); configuration.ExecutionExtensionsConfiguration() .EnableScenarioDecorator <ClearServerScenarioDecorator>(); }
protected override void OnConfigure(LightBddConfiguration configuration) { configuration.FeatureProgressNotifierConfiguration() .ClearNotifiers(); configuration.ScenarioProgressNotifierConfiguration() .ClearNotifierProviders() .UpdateNotifierProvider(() => ScenarioProgressCapture.Instance); configuration.ReportWritersConfiguration() .Clear(); }
public void Configuration_should_be_sealable() { var root = new LightBddConfiguration(); var cfg = root.Get <FeatureProgressNotifierConfiguration>(); root.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.UpdateNotifier(Mock.Of <IFeatureProgressNotifier>())); Assert.Throws <InvalidOperationException>(() => cfg.AppendNotifiers(Mock.Of <IFeatureProgressNotifier>())); Assert.Throws <InvalidOperationException>(() => cfg.ClearNotifiers()); }
protected override void OnConfigure(LightBddConfiguration configuration) { configuration .ReportWritersConfiguration() .Clear() .AddFileWriter <XmlReportFormatter>(@"~/Reports/FeaturesReport.xml") .AddFileWriter <PlainTextReportFormatter>("~/Reports/{TestDateTimeUtc:yyyy-MM-dd-HH_mm_ss}_FeaturesReport.txt") .AddFileWriter <HtmlReportFormatter>(@"~/Reports/LightBDDHtmlReport.html") .AddFileWriter <MarkdownReportFormatter>(@"~/Reports/LightBDDReport.md") ; }
/// <summary> /// Default constructor sealing provided <paramref name="configuration"/> and initializing all properties. /// </summary> /// <param name="configuration">Configuration to use.</param> /// <param name="metadataProvider"><see cref="CoreMetadataProvider"/> instance to use.</param> /// <param name="exceptionToStatusMapper">Exception to status mapper function.</param> public DefaultIntegrationContext(LightBddConfiguration configuration, CoreMetadataProvider metadataProvider, Func <Exception, ExecutionStatus> exceptionToStatusMapper) { Configuration = configuration?.Seal() ?? throw new ArgumentNullException(nameof(configuration)); MetadataProvider = metadataProvider ?? throw new ArgumentNullException(nameof(metadataProvider)); ExceptionToStatusMapper = exceptionToStatusMapper; FeatureProgressNotifier = configuration.FeatureProgressNotifierConfiguration().Notifier; ScenarioProgressNotifierProvider = configuration.ScenarioProgressNotifierConfiguration().NotifierProvider; ExecutionExtensions = configuration.ExecutionExtensionsConfiguration(); DependencyContainer = configuration.DependencyContainerConfiguration().DependencyContainer; }
public void FeatureConfiguration_should_offer_protection_from_modifying_sealed_config() { var cfg = new LightBddConfiguration(); Assert.DoesNotThrow(() => cfg.Get <TestableFeatureConfig>().Foo()); cfg.Seal(); var ex = Assert.Throws <InvalidOperationException>(() => cfg.Get <TestableFeatureConfig>().Foo()); Assert.That(ex.Message, Is.EqualTo("Feature configuration is sealed. Please update configuration only during LightBDD initialization.")); }
/// <summary> /// Constructor. /// </summary> protected CoreMetadataProvider(LightBddConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } ValueFormattingService = new ValueFormattingService(configuration); NameFormatter = configuration.NameFormatterConfiguration().GetFormatter(); _nameParser = new NameParser(NameFormatter); _stepTypeProcessor = new StepTypeProcessor(NameFormatter, configuration.StepTypeConfiguration()); }
protected override void OnConfigure(LightBddConfiguration configuration) { configuration.ReportWritersConfiguration() .Clear(); configuration.FeatureProgressNotifierConfiguration() .ClearNotifiers(); configuration.ScenarioProgressNotifierConfiguration() .ClearNotifierProviders() .AppendNotifierProviders(() => new DefaultProgressNotifier(x => CapturedNotifications.Enqueue(x))); }
/// <summary> /// Applies framework default configuration. /// </summary> /// <param name="configuration">Configuration.</param> /// <returns><paramref name="configuration"/>.</returns> public static LightBddConfiguration WithFrameworkDefaults(this LightBddConfiguration configuration) { configuration .ExecutionExtensionsConfiguration() .EnableStepCommenting(); configuration .ValueFormattingConfiguration() .RegisterFrameworkDefaultGeneralFormatters(); return(configuration); }
public void Seal_should_make_existing_config_sealed() { var cfg = new LightBddConfiguration(); var feature = cfg.Get <SealableFeatureConfig>(); Assert.IsFalse(feature.IsSealed); Assert.IsFalse(cfg.IsSealed); cfg.Seal(); Assert.IsTrue(cfg.IsSealed); Assert.IsTrue(feature.IsSealed); }
public void Configuration_should_be_sealable() { var writer = Mock.Of <IReportWriter>(); var lighbddConfig = new LightBddConfiguration(); var cfg = lighbddConfig.Get <ReportWritersConfiguration>().Add(writer); lighbddConfig.Seal(); Assert.Throws <InvalidOperationException>(() => cfg.Add(Mock.Of <IReportWriter>())); Assert.Throws <InvalidOperationException>(() => cfg.Clear()); Assert.Throws <InvalidOperationException>(() => cfg.Remove(writer)); Assert.That(cfg.ToArray(), Is.Not.Empty); }
private static void OnConfigure(LightBddConfiguration configuration) { // some example customization of report writers configuration .ReportWritersConfiguration() .Clear() .AddFileWriter <HtmlReportFormatter>("FeaturesReport.html") ; configuration .ValueFormattingConfiguration() .RegisterExplicit(typeof(Asset), new AssetFormatter()) ; }