/// <summary> /// Configures the Output for the ResourceStaticAnalysis. /// </summary> /// <param name="outputFile">The file to write output to</param> public void ConfigureOutput(string outputFile) { OutputWriterConfig outputCfg = new OutputWriterConfig(); outputCfg.SetDataSourceProvider <XMLDOMOutputWriter>(); outputCfg.Schema = "ResourceStaticAnalysisOutput.xsd"; // Configure where the log file is created. string outputDirectory = Path.GetDirectoryName(outputFile); if (!Directory.Exists(outputDirectory)) { try { Directory.CreateDirectory(outputDirectory); } catch (Exception ex) { throw new IOException(ex.ToString()); } } outputCfg.Path = outputFile; // Add properties to include in output outputCfg.AddPropertyToIncludeInOutput("SourceString"); outputCfg.AddPropertyToIncludeInOutput("ResourceId"); outputCfg.AddPropertyToIncludeInOutput("Comments"); this.EngineConfiguration.OutputConfigs.Add(outputCfg); }
/// <summary> /// Adds configuration for an output writer. /// </summary> /// <param name="config">Configuration object.</param> public void AddOutputConfig(OutputWriterConfig config) { if (OutputConfigs == null) { OutputConfigs = new List <OutputWriterConfig>(); } OutputConfigs.Add(config); }
void IOutputWriter.Initialize(OutputWriterConfig owc) { _myConfig = owc; //Override default if available _fileName = Environment.ExpandEnvironmentVariables((_myConfig.Path.Length > 0) ? _myConfig.Path : Resources.DefaultOutputFileName); _pathToOutputSchema = owc.Schema; if (!Object.ReferenceEquals(owc.PropertiesToInclude, null) && owc.PropertiesToInclude.Count > 0) { _propertiesToWrite = owc.PropertiesToInclude; } _outputDoc = new XDocument( new XDeclaration("1.0", "UTF-8", "yes"), new XElement(Resources.ProductShortName, new XAttribute("version", Resources.ProductVersion), new XAttribute("start", DateTime.Now.ToString()))); }
/// <summary> /// Creates a sample Engine configuration /// </summary> /// <param name="testContext">VS Test Context</param> /// <param name="testRuleFileName">Rule to be used (.dll or .cs)</param> /// <param name="numberOfResources">Number of Resources to generate (in increments of 6)</param> /// <returns></returns> internal static EngineConfig CreateSampleConfig(TestContext testContext, string testRuleFileName, int numberOfResources) { testRuleFileName = Path.Combine(testContext.DeploymentDirectory, testRuleFileName); var configuration = new EngineConfig(); #region DataSourceProviderTypes configuration.AddDataSourceProvider(typeof(SampleDataSource)); #endregion #region PropertyAdapterTypes configuration.AddPropertyAdapter <SamplePropertyAdapter>(); configuration.AddPropertyAdapter <SampleClassificationObjectSelfPropertyAdapter>(); #endregion #region COAdatpers configuration.AddCOAdapter(typeof(SampleDataAdapter)); #endregion #region COTypes configuration.AddClassificationObject <SampleClassificationObjectType>(); #endregion #region DataSourcePackages var package = new DataSourcePackage(); // This package will contain 2 data sources package.SetCOType <SampleClassificationObjectType>(); var dataSource = new DataSourceInfo(); dataSource.SetSourceType <SampleResourceCollection>(); List <Tuple <string, string, string> > sampleResources = GenerateLargeNumberOfResources(numberOfResources); dataSource.SetSourceLocation(sampleResources); package.AddDataSource(dataSource); configuration.AddDataSourcePackage(package); #endregion #region Add rules RuleContainerType rct = new RuleContainerType(); if (testRuleFileName.EndsWith(".cs")) { rct = RuleContainerType.Source; } else { rct = RuleContainerType.Module; } configuration.AddRule(new RuleContainer(testRuleFileName, rct)); #endregion #region And some configuration for dynamic compiler configuration.AddBinaryReference("System.Core.dll"); configuration.AddBinaryReference("mscorlib.dll"); configuration.AddBinaryReference("System.dll"); configuration.AddBinaryReference("Microsoft.ResourceStaticAnalysis.Core.dll"); configuration.AddBinaryReference("UnitTests.dll"); #endregion #region Configure output behavior var outputCfg = new OutputWriterConfig(); outputCfg.SetDataSourceProvider <XMLDOMOutputWriter>(); outputCfg.Schema = "ResourceStaticAnalysisOutput.xsd"; outputCfg.Path = testContext.TestRunDirectory; outputCfg.AddPropertyToIncludeInOutput("ResourceId"); outputCfg.AddPropertyToIncludeInOutput("SourceString"); outputCfg.AddPropertyToIncludeInOutput("Comments"); configuration.OutputConfigs.Add(outputCfg); #endregion return(configuration); }