本文整理汇总了C#中SonarQube.Common.AnalysisConfig.Save方法的典型用法代码示例。如果您正苦于以下问题:C# AnalysisConfig.Save方法的具体用法?C# AnalysisConfig.Save怎么用?C# AnalysisConfig.Save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SonarQube.Common.AnalysisConfig
的用法示例。
在下文中一共展示了AnalysisConfig.Save方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateFile
public static AnalysisConfig GenerateFile(ProcessedArgs args, TeamBuildSettings settings, IDictionary<string, string> serverProperties, ILogger logger)
{
if (args == null)
{
throw new ArgumentNullException("args");
}
if (settings == null)
{
throw new ArgumentNullException("settings");
}
if (serverProperties == null)
{
throw new ArgumentNullException("serverProperties");
}
if (logger == null)
{
throw new ArgumentNullException("logger");
}
AnalysisConfig config = new AnalysisConfig();
config.SonarProjectKey = args.ProjectKey;
config.SonarProjectName = args.ProjectName;
config.SonarProjectVersion = args.ProjectVersion;
config.SonarQubeHostUrl = args.GetSetting(SonarProperties.HostUrl);
config.SetBuildUri(settings.BuildUri);
config.SetTfsUri(settings.TfsUri);
config.SonarConfigDir = settings.SonarConfigDirectory;
config.SonarOutputDir = settings.SonarOutputDirectory;
config.SonarBinDir = settings.SonarBinDirectory;
config.SonarRunnerWorkingDirectory = settings.SonarRunnerWorkingDirectory;
// Add the server properties to the config
config.ServerSettings = new AnalysisProperties();
foreach (var property in serverProperties)
{
if (!IsSecuredServerProperty(property.Key))
{
AddSetting(config.ServerSettings, property.Key, property.Value);
}
}
// Add command line arguments
config.LocalSettings = new AnalysisProperties();
foreach (var property in args.LocalProperties.GetAllProperties())
{
AddSetting(config.LocalSettings, property.Id, property.Value);
}
// Set the pointer to the properties file
if (args.PropertiesFileName != null)
{
config.SetSettingsFilePath(args.PropertiesFileName);
}
config.Save(settings.AnalysisConfigFilePath);
return config;
}
示例2: GetAnalyzerSettings_ConfigExists_DataReturned
public void GetAnalyzerSettings_ConfigExists_DataReturned()
{
// Arrange
string testDir = TestUtils.CreateTestSpecificFolder(this.TestContext);
GetAnalyzerSettings testSubject = new GetAnalyzerSettings();
string[] expectedAnalyzers = new string[] { "c:\\analyzer1.DLL", "c:\\analyzer2.dll" };
string[] expectedAdditionalFiles = new string[] { "c:\\add1.txt", "d:\\add2.txt" };
// SONARMSBRU-216: non-assembly files should be filtered out
List<string> filesInConfig = new List<string>(expectedAnalyzers);
filesInConfig.Add("c:\\not_an_assembly.exe");
filesInConfig.Add("c:\\not_an_assembly.zip");
filesInConfig.Add("c:\\not_an_assembly.txt");
filesInConfig.Add("c:\\not_an_assembly.dll.foo");
filesInConfig.Add("c:\\not_an_assembly.winmd");
AnalysisConfig config = new AnalysisConfig();
config.AnalyzerSettings = new AnalyzerSettings();
config.AnalyzerSettings.RuleSetFilePath = "f:\\yyy.ruleset";
config.AnalyzerSettings.AnalyzerAssemblyPaths = filesInConfig;
config.AnalyzerSettings.AdditionalFilePaths = expectedAdditionalFiles.ToList();
string fullPath = Path.Combine(testDir, FileConstants.ConfigFileName);
config.Save(fullPath);
testSubject.AnalysisConfigDir = testDir;
// Act
ExecuteAndCheckSuccess(testSubject);
// Assert
Assert.AreEqual("f:\\yyy.ruleset", testSubject.RuleSetFilePath);
CollectionAssert.AreEquivalent(expectedAnalyzers, testSubject.AnalyzerFilePaths);
CollectionAssert.AreEquivalent(expectedAdditionalFiles, testSubject.AdditionalFiles);
}
示例3: Roslyn_Settings_ValidSetup
public void Roslyn_Settings_ValidSetup()
{
// Arrange
BuildLogger logger = new BuildLogger();
// Set the config directory so the targets know where to look for the analysis config file
string confDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "config");
// Create a valid config file containing analyzer settings
string[] expectedAssemblies = new string[] { "c:\\data\\config.analyzer1.dll", "c:\\config2.dll" };
string[] expectedAdditionalFiles = new string[] { "c:\\config.1.txt", "c:\\config.2.txt" };
AnalysisConfig config = new AnalysisConfig();
config.AnalyzerSettings = new AnalyzerSettings();
config.AnalyzerSettings.RuleSetFilePath = "d:\\my.ruleset";
config.AnalyzerSettings.AnalyzerAssemblyPaths = expectedAssemblies.ToList();
config.AnalyzerSettings.AdditionalFilePaths = expectedAdditionalFiles.ToList();
string configFilePath = Path.Combine(confDir, FileConstants.ConfigFileName);
config.Save(configFilePath);
// Create the project
WellKnownProjectProperties properties = new WellKnownProjectProperties();
properties.SonarQubeConfigPath = confDir;
properties.ResolvedCodeAnalysisRuleset = "c:\\should.be.overridden.ruleset";
ProjectRootElement projectRoot = CreateValidProjectSetup(properties);
projectRoot.AddItem(TargetProperties.AnalyzerItemType, "should.be.removed.analyzer1.dll");
projectRoot.AddItem(TargetProperties.AnalyzerItemType, "c:\\should.be.removed.analyzer2.dll");
projectRoot.AddItem(TargetProperties.AdditionalFilesItemType, "should.be.removed.additional1.txt");
projectRoot.AddItem(TargetProperties.AdditionalFilesItemType, "should.be.removed.additional2.txt");
// Act
BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.OverrideRoslynAnalysisTarget);
// Assert
logger.AssertTargetExecuted(TargetConstants.OverrideRoslynAnalysisTarget);
logger.AssertTargetExecuted(TargetConstants.SetRoslynAnalysisPropertiesTarget);
BuildAssertions.AssertTargetSucceeded(result, TargetConstants.OverrideRoslynAnalysisTarget);
// Check the error log and ruleset properties are set
AssertErrorLogIsSetBySonarQubeTargets(result);
AssertExpectedResolvedRuleset(result, "d:\\my.ruleset");
AssertExpectedItemValuesExists(result, TargetProperties.AdditionalFilesItemType, expectedAdditionalFiles);
AssertExpectedItemValuesExists(result, TargetProperties.AnalyzerItemType, expectedAssemblies);
BuildAssertions.AssertWarningsAreNotTreatedAsErrorsNorIgnored(result);
}
示例4: GetAnalyzerSettings_ConfigExistsButNoAnalyzerSettings_NoError
public void GetAnalyzerSettings_ConfigExistsButNoAnalyzerSettings_NoError()
{
// Arrange
string testDir = TestUtils.CreateTestSpecificFolder(this.TestContext);
GetAnalyzerSettings testSubject = new GetAnalyzerSettings();
AnalysisConfig config = new AnalysisConfig();
string fullPath = Path.Combine(testDir, FileConstants.ConfigFileName);
config.Save(fullPath);
testSubject.AnalysisConfigDir = testDir;
// Act
ExecuteAndCheckSuccess(testSubject);
// Assert
CheckNoAnalyzerSettings(testSubject);
}
示例5: E2E_FxCop_TestProject_TestProjectByName
public void E2E_FxCop_TestProject_TestProjectByName()
{
// Arrange
string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs");
string rootOutputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Outputs");
string fxCopLogFile = Path.Combine(rootInputFolder, "FxCopResults.xml");
WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties();
preImportProperties.SonarQubeTempPath = rootOutputFolder; // FIXME
preImportProperties.SonarQubeOutputPath = rootOutputFolder;
preImportProperties.CodeAnalysisLogFile = fxCopLogFile;
preImportProperties.CodeAnalysisRuleset = "specifiedInProject.ruleset";
preImportProperties.SonarQubeConfigPath = rootInputFolder;
preImportProperties[TargetProperties.SonarQubeConfigPath] = rootInputFolder;
CreateValidFxCopRuleset(rootInputFolder, string.Format(TargetProperties.SonarQubeRulesetFormat, "cs"));
// Create a config file in the config folder containing a reg ex to identify tests projects
AnalysisConfig config = new AnalysisConfig();
config.LocalSettings = new AnalysisProperties();
config.LocalSettings.Add(new Property() { Id = IsTestFileByName.TestRegExSettingId, Value = ".testp." });
string configFullPath = Path.Combine(rootInputFolder, FileConstants.ConfigFileName);
config.Save(configFullPath);
// Create a project with a file name that will match the reg ex
ProjectDescriptor descriptor = BuildUtilities.CreateValidProjectDescriptor(rootInputFolder, "MyTestProject.proj");
ProjectRootElement projectRoot = BuildUtilities.CreateInitializedProjectRoot(this.TestContext, descriptor, preImportProperties);
// Add a file to the project
string itemPath = TestUtils.CreateTextFile(rootInputFolder, "code1.cs", "class myclassXXX{}");
projectRoot.AddItem(TargetProperties.ItemType_Compile, itemPath);
projectRoot.Save();
BuildLogger logger = new BuildLogger();
// Act
BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger);
// Assert
BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget);
logger.AssertExpectedTargetOrdering(
TargetConstants.CategoriseProjectTarget,
TargetConstants.OverrideFxCopSettingsTarget,
TargetConstants.FxCopTarget,
TargetConstants.DefaultBuildTarget,
TargetConstants.CalculateFilesToAnalyzeTarget,
TargetConstants.WriteProjectDataTarget);
// We expect the FxCop target to be executed...
logger.AssertTargetExecuted(TargetConstants.FxCopTarget);
// ... but we don't expect the FxCop *task* to have executed
logger.AssertTaskNotExecuted(TargetConstants.FxCopTask);
logger.AssertTargetNotExecuted(TargetConstants.SetFxCopResultsTarget);
ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath);
ProjectInfoAssertions.AssertAnalysisResultDoesNotExists(projectInfo, AnalysisType.FxCop.ToString());
}
示例6: EnsureAnalysisConfig
/// <summary>
/// Ensures an analysis config file exists in the specified directory,
/// replacing one if it already exists.
/// If the supplied "regExExpression" is not null then the appropriate setting
/// entry will be created in the file
/// </summary>
private static string EnsureAnalysisConfig(string parentDir, string regExExpression)
{
AnalysisConfig config = new AnalysisConfig();
if (regExExpression != null)
{
config.LocalSettings = new AnalysisProperties();
config.LocalSettings.Add(new Property() { Id = IsTestFileByName.TestRegExSettingId, Value = regExExpression });
}
string fullPath = Path.Combine(parentDir, FileConstants.ConfigFileName);
if (File.Exists(fullPath))
{
File.Delete(fullPath);
}
config.Save(fullPath);
return fullPath;
}
示例7: CreateConfigFile
/// <summary>
/// Creates a configuration file in the specified directory.
/// If an output directory is supplied then the value of the build wrapper output property
/// will be set to that value.
/// </summary>
private static string CreateConfigFile(string configDir, string buildWrapperOutputDir)
{
AnalysisConfig config = new AnalysisConfig();
config.LocalSettings = new AnalysisProperties();
if (buildWrapperOutputDir != null)
{
config.LocalSettings.Add(new Property() { Id = BuildOutputSettingName, Value = buildWrapperOutputDir });
}
string filePath = Path.Combine(configDir, FileConstants.ConfigFileName);
config.Save(filePath);
return filePath;
}
示例8: CreateAnalysisConfig
/// <summary>
/// Ensures an analysis config file exists in the specified directory,
/// replacing one if it already exists.
/// If the supplied "regExExpression" is not null then the appropriate setting
/// entry will be created in the file
/// </summary>
private static string CreateAnalysisConfig(string parentDir)
{
string fullPath = Path.Combine(parentDir, FileConstants.ConfigFileName);
AnalysisConfig config = new AnalysisConfig();
config.Save(fullPath);
return fullPath;
}
示例9: GetAnalyzerSettings_ConfigExists_DataReturned
public void GetAnalyzerSettings_ConfigExists_DataReturned()
{
// Arrange
string testDir = TestUtils.CreateTestSpecificFolder(this.TestContext);
GetAnalyzerSettings testSubject = new GetAnalyzerSettings();
string[] expectedAnalyzers = new string[] { "c:\\analyzer1.dll", "c:\\analyzer2.dll" };
string[] expectedAdditionalFiles = new string[] { "c:\\add1.txt", "d:\\add2.txt" };
AnalysisConfig config = new AnalysisConfig();
config.AnalyzerSettings = new AnalyzerSettings();
config.AnalyzerSettings.RuleSetFilePath = "f:\\yyy.ruleset";
config.AnalyzerSettings.AnalyzerAssemblyPaths = expectedAnalyzers.ToList();
config.AnalyzerSettings.AdditionalFilePaths = expectedAdditionalFiles.ToList();
string fullPath = Path.Combine(testDir, FileConstants.ConfigFileName);
config.Save(fullPath);
testSubject.AnalysisConfigDir = testDir;
// Act
ExecuteAndCheckSuccess(testSubject);
// Assert
Assert.AreEqual("f:\\yyy.ruleset", testSubject.RuleSetFilePath);
CollectionAssert.AreEquivalent(expectedAnalyzers, testSubject.AnalyzerFilePaths);
CollectionAssert.AreEquivalent(expectedAdditionalFiles, testSubject.AdditionalFiles);
}
示例10: Roslyn_Settings_SettingsMissing_NoError
public void Roslyn_Settings_SettingsMissing_NoError()
{
// Arrange
BuildLogger logger = new BuildLogger();
// Set the config directory so the targets know where to look for the analysis config file
string confDir = TestUtils.CreateTestSpecificFolder(this.TestContext, "config");
// Create a valid config file that does not contain analyzer settings
AnalysisConfig config = new AnalysisConfig();
string configFilePath = Path.Combine(confDir, FileConstants.ConfigFileName);
config.Save(configFilePath);
// Create the project
WellKnownProjectProperties properties = new WellKnownProjectProperties();
properties.SonarQubeConfigPath = confDir;
properties.ResolvedCodeAnalysisRuleset = "c:\\should.be.overridden.ruleset";
ProjectRootElement projectRoot = CreateValidProjectSetup(properties);
projectRoot.AddItem(TargetProperties.AnalyzerItemType, "should.be.removed.analyzer1.dll");
projectRoot.AddItem(TargetProperties.AdditionalFilesItemType, "should.be.removed.additional1.txt");
// Act
BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.OverrideRoslynAnalysisTarget);
// Assert
logger.AssertTargetExecuted(TargetConstants.OverrideRoslynAnalysisTarget);
logger.AssertTargetExecuted(TargetConstants.SetRoslynAnalysisPropertiesTarget);
BuildAssertions.AssertTargetSucceeded(result, TargetConstants.OverrideRoslynAnalysisTarget);
// Check the error log and ruleset properties are set
AssertErrorLogIsSetBySonarQubeTargets(result);
AssertExpectedResolvedRuleset(result, string.Empty);
BuildAssertions.AssertExpectedItemGroupCount(result, TargetProperties.AnalyzerItemType, 0);
BuildAssertions.AssertExpectedItemGroupCount(result, TargetProperties.AdditionalFilesItemType, 0);
}