public void IntTargets_SonarPaths_TeamBuildPropertySet_NonLegacy() { // Arrange string projectXml = $@" <PropertyGroup> <SonarQubeTempPath>t:\TeamBuildDir_NonLegacy\.sonarqube</SonarQubeTempPath> <TF_BUILD_BUILDDIRECTORY></TF_BUILD_BUILDDIRECTORY> <AGENT_BUILDDIRECTORY>t:\TeamBuildDir_NonLegacy</AGENT_BUILDDIRECTORY> </PropertyGroup> "; var filePath = CreateProjectFile(null, projectXml); // Act var projectInstance = new ProjectInstance(filePath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"t:\TeamBuildDir_NonLegacy\.sonarqube\out"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"t:\TeamBuildDir_NonLegacy\.sonarqube\conf"); }
public void IntTargets_SonarPaths_TeamBuildPropertySet_NonLegacy() { // Arrange var rootInputFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Inputs"); var preImportProperties = new WellKnownProjectProperties { SonarQubeTempPath = @"t:\TeamBuildDir_NonLegacy\.sonarqube", // FIXME TeamBuildLegacyBuildDirectory = "", TeamBuild2105BuildDirectory = @"t:\TeamBuildDir_NonLegacy" }; var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, rootInputFolder, preImportProperties); // Act var projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"t:\TeamBuildDir_NonLegacy\.sonarqube\out"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"t:\TeamBuildDir_NonLegacy\.sonarqube\conf"); }
public void IntTargets_SonarPaths_TempPathSet() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeTempPath = @"c:\sonarQTemp"; preImportProperties.TeamBuildLegacyBuildDirectory = @"t:\Legacy TeamBuildPath\"; // SonarQubeTempPath setting should take precedence preImportProperties.TeamBuild2105BuildDirectory = @"x:\New Team Build Path\"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Act ProjectInstance projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"c:\sonarQTemp\out\"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"c:\sonarQTemp\conf\"); }
public void Roslyn_Settings_ErrorLogAlreadySet() { // Arrange BuildLogger logger = new BuildLogger(); WellKnownProjectProperties properties = new WellKnownProjectProperties(); properties[TargetProperties.ErrorLog] = "already.set.txt"; ProjectRootElement projectRoot = CreateValidProjectSetup(properties); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.OverrideRoslynAnalysisTarget); // Assert logger.AssertTargetExecuted(TargetConstants.OverrideRoslynAnalysisTarget); logger.AssertTargetExecuted(TargetConstants.SetRoslynAnalysisPropertiesTarget); BuildAssertions.AssertTargetSucceeded(result, TargetConstants.OverrideRoslynAnalysisTarget); BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.ErrorLog, "already.set.txt"); }
public void IntTargets_SonarPaths_TempPathSet() { // Arrange string projectXml = $@" <PropertyGroup> <SonarQubeTempPath>c:\sonarQTemp</SonarQubeTempPath> <!-- SonarQubeTempPath setting should take precedence --> <TF_BUILD_BUILDDIRECTORY>t:\Legacy TeamBuildPath\</TF_BUILD_BUILDDIRECTORY> <AGENT_BUILDDIRECTORY>x:\New Team Build Path\</AGENT_BUILDDIRECTORY> </PropertyGroup> "; var filePath = CreateProjectFile(null, projectXml); // Act var projectInstance = new ProjectInstance(filePath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"c:\sonarQTemp\out"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"c:\sonarQTemp\conf"); }
public void Roslyn_Settings_Analyzer_AssemblyExists() { // Arrange BuildLogger logger = new BuildLogger(); WellKnownProjectProperties properties = new WellKnownProjectProperties(); ProjectRootElement projectRoot = CreateValidProjectSetup(properties); projectRoot.AddItem(TargetProperties.AnalyzerItemType, "analyzer1.dll"); // additional -> preserve projectRoot.AddItem(TargetProperties.AnalyzerItemType, "c:\\myfolder\\analyzer2.dll"); // additional -> preserve projectRoot.AddItem(TargetProperties.AnalyzerItemType, "sonarlint.dll"); // relative path -> remove projectRoot.AddItem(TargetProperties.AnalyzerItemType, "c:\\myfolder\\sonarlint.dll"); // absolute path -> remove projectRoot.AddItem(TargetProperties.AnalyzerItemType, "XXSONARLINT.dll"); // case-sensitivity -> remove projectRoot.AddItem(TargetProperties.AnalyzerItemType, "sonarLint.dll.xxx"); // doesn't match -> preserve projectRoot.AddItem(TargetProperties.AnalyzerItemType, "c:\\sonarLint\\my.dll"); // doesn't match -> preserve // 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 intermediate working properties have the expected values BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, "SonarQubeRoslynRulesetExists", "True"); BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, "SonarLintFound", "true"); // Check the analyzer properties are set as expected List <string> expectedAnalyzers = new List <string>(GetSonarLintAnalyzerFilePaths()); expectedAnalyzers.Add("analyzer1.dll"); expectedAnalyzers.Add("c:\\myfolder\\analyzer2.dll"); expectedAnalyzers.Add("sonarLint.dll.xxx"); expectedAnalyzers.Add("c:\\sonarLint\\my.dll"); AssertExpectedAnalyzersExists(result, expectedAnalyzers.ToArray()); }
public void ImportsBefore_AutoImport_IsAutoImported() { // 0. Set up WellKnownProjectProperties preImportProperties; string testDir = TestUtils.EnsureTestSpecificFolder(this.TestContext); string configFilePath = this.EnsureDummyAnalysisConfigFileExists(testDir); // 1. RunSonarAnalysisQube is not set, Legacy TFS path -> auto-import preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = ""; preImportProperties.TeamBuild2105BuildDirectory = ""; preImportProperties.TeamBuildLegacyBuildDirectory = testDir; preImportProperties.SonarQubeTargetsPath = "shouldn't matter if this is set"; // Act ProjectInstance projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.AutoImportProperty, "true"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.RunSonarQubeAnalysis, "true"); // 2. RunSonarAnalysisQube is not set, non-legacy TFS path -> auto-import preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = ""; preImportProperties.TeamBuild2105BuildDirectory = testDir; preImportProperties.TeamBuildLegacyBuildDirectory = ""; preImportProperties.SonarQubeTargetsPath = "shouldn't matter if this is set"; // Act projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.AutoImportProperty, "true"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.RunSonarQubeAnalysis, "true"); }
public void IntTargets_SonarPaths_OutputAndConfigPathsAreSet() { // The SonarQubeTempPath and TeamBuild paths should be ignored if the output and config are set explicitly // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeOutputPath = @"c:\output"; preImportProperties.SonarQubeConfigPath = @"c:\config"; preImportProperties.SonarQubeTempPath = @"c:\sonarQTemp"; preImportProperties.TeamBuildLegacyBuildDirectory = @"t:\Legacy TeamBuildPath\"; preImportProperties.TeamBuild2105BuildDirectory = @"t:\New TeamBuildPath\"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Act ProjectInstance projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"c:\output"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"c:\config"); }
private static void AssertExpectedResolvedRuleset(BuildResult result, string expectedResolvedRuleset) { BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.ResolvedCodeAnalysisRuleset, expectedResolvedRuleset); }
private static void AssertExpectedErrorLog(BuildResult result, string expectedErrorLog) { BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.ErrorLog, expectedErrorLog); }
private static void AssertExpectedAnalysisProperties(BuildResult result, string expectedErrorLog, string expectedResolvedRuleset) { // Check the ruleset and error log are not set BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.ErrorLog, expectedErrorLog); BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.ResolvedCodeAnalysisRuleset, expectedResolvedRuleset); }