public void IntTargets_TempFolderIsNotSet() { // Arrange var rootInputFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Inputs"); var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, rootInputFolder, null); // Act var projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
public void Roslyn_TargetExecutionOrder() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); string rootOutputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Outputs"); WellKnownProjectProperties properties = new WellKnownProjectProperties(); properties.SonarQubeTempPath = rootInputFolder; properties.SonarQubeOutputPath = rootInputFolder; properties.SonarQubeConfigPath = rootOutputFolder; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, properties); // Add some settings we expect to be ignored AddAnalysisSetting("sonar.other.setting", "other value", projectRoot); projectRoot.Save(); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.DefaultBuildTarget); // Assert // Checks that should succeed irrespective of the MSBuild version BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget); logger.AssertTargetExecuted(TargetConstants.OverrideRoslynAnalysisTarget); // Note: use VS2013 to run this test using MSBuild 12.0. // Use VS2015 to run this test using MSBuild 14.0. if (result.ProjectStateAfterBuild.ToolsVersion.CompareTo("14.0") < 0) { logger.AssertTargetNotExecuted(TargetConstants.ResolveCodeAnalysisRuleSet); // sanity-check: should only be in MSBuild 14.0+ Assert.Inconclusive("This test requires MSBuild 14.0 to be installed. Version used: {0}", result.ProjectStateAfterBuild.ToolsVersion); } else { // MSBuild 14.0+ checks logger.AssertExpectedTargetOrdering( TargetConstants.ResolveCodeAnalysisRuleSet, TargetConstants.CategoriseProjectTarget, TargetConstants.OverrideRoslynAnalysisTarget, TargetConstants.SetRoslynAnalysisPropertiesTarget, TargetConstants.CoreCompile, TargetConstants.DefaultBuildTarget, TargetConstants.SetRoslynResultsTarget, TargetConstants.WriteProjectDataTarget); } }
public void E2E_FxCop_NoFilesToAnalyse() { // 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.RunSonarQubeAnalysis = "true"; preImportProperties.SonarQubeOutputPath = rootOutputFolder; preImportProperties.RunCodeAnalysis = "false"; preImportProperties.CodeAnalysisLogFile = fxCopLogFile; preImportProperties.CodeAnalysisRuleset = "specifiedInProject.ruleset"; preImportProperties[TargetProperties.SonarQubeConfigPath] = rootInputFolder; CreateValidFxCopRuleset(rootInputFolder, TargetProperties.SonarQubeRulesetName); ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Add some files to the project string itemPath = CreateTextFile(rootInputFolder, "content1.txt", "aaaa"); projectRoot.AddItem("Content", itemPath); itemPath = CreateTextFile(rootInputFolder, "code1.cs", "class myclassXXX{} // wrong item type"); projectRoot.AddItem("CompileXXX", itemPath); projectRoot.Save(); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger); // Assert BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget); logger.AssertExpectedTargetOrdering(TargetConstants.CoreCompileTarget, TargetConstants.CalculateSonarQubeFileListsTarget, TargetConstants.OverrideFxCopSettingsTarget, TargetConstants.DefaultBuildTarget, TargetConstants.WriteProjectDataTarget); logger.AssertTargetNotExecuted(TargetConstants.SetFxCopResultsTarget); ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath); ProjectInfoAssertions.AssertAnalysisResultDoesNotExists(projectInfo, AnalysisType.FxCop.ToString()); }
public void E2E_FxCop_ExcludedProject() { // 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.SonarQubeExclude = "true"; preImportProperties[TargetProperties.SonarQubeConfigPath] = rootInputFolder; CreateValidFxCopRuleset(rootInputFolder, string.Format(TargetProperties.SonarQubeRulesetFormat, "cs")); ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Add a file to the project string itemPath = 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.DefaultBuildTarget, TargetConstants.WriteProjectDataTarget); logger.AssertTargetExecuted(TargetConstants.FxCopTarget); logger.AssertTaskNotExecuted(TargetConstants.FxCopTask); logger.AssertTargetNotExecuted(TargetConstants.SetFxCopResultsTarget); ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath); ProjectInfoAssertions.AssertAnalysisResultDoesNotExists(projectInfo, AnalysisType.FxCop.ToString()); }
public void E2E_FxCop_AllConditionsMet() { // 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.RunCodeAnalysis = "false"; preImportProperties.CodeAnalysisLogFile = fxCopLogFile; preImportProperties.CodeAnalysisRuleset = "specifiedInProject.ruleset"; preImportProperties[TargetProperties.SonarQubeConfigPath] = rootInputFolder; CreateValidFxCopRuleset(rootInputFolder, string.Format(TargetProperties.SonarQubeRulesetFormat, "cs")); ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); string itemPath = TestUtils.CreateTextFile(rootInputFolder, "my.cs", "class myclass{}"); 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.DetectFxCopRulesetTarget, TargetConstants.CategoriseProjectTarget, TargetConstants.OverrideFxCopSettingsTarget, TargetConstants.FxCopTarget, TargetConstants.SetFxCopResultsTarget, TargetConstants.DefaultBuildTarget); AssertAllFxCopTargetsExecuted(logger); Assert.IsTrue(File.Exists(fxCopLogFile), "FxCop log file should have been produced"); ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath); ProjectInfoAssertions.AssertAnalysisResultExists(projectInfo, AnalysisType.FxCop.ToString(), fxCopLogFile); }
public void IntTargets_RunSonarQubeAnalysisNotTrue() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = "trueX"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Act ProjectInstance projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
/// <summary> /// Creates a valid project with the necessary ruleset and assembly files on disc /// to successfully run the "OverrideRoslynCodeAnalysisProperties" target /// </summary> private ProjectRootElement CreateValidProjectSetup(WellKnownProjectProperties properties) { string sqTempFolder = TestUtils.CreateTestSpecificFolder(this.TestContext); CreateDummySonarLintFiles(); CreateDummyRuleset(); WellKnownProjectProperties projectProperties = properties ?? new WellKnownProjectProperties(); string projectFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Project"); projectProperties.SonarQubeTempPath = sqTempFolder; projectProperties[TargetProperties.Language] = "C#"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, projectFolder, projectProperties); return(projectRoot); }
/// <summary> /// Creates a valid project with the necessary ruleset and assembly files on disc /// to successfully run the "OverrideRoslynCodeAnalysisProperties" target /// </summary> private ProjectRootElement CreateValidProjectSetup(WellKnownProjectProperties properties) { string sqTempFolder = TestUtils.EnsureTestSpecificFolder(this.TestContext); WellKnownProjectProperties projectProperties = properties ?? new WellKnownProjectProperties(); string projectFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Project"); projectProperties.SonarQubeTempPath = sqTempFolder; projectProperties[TargetProperties.Language] = "C#"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, projectFolder, projectProperties); string projectFilePath = Path.Combine(projectFolder, "valid.project.proj"); projectRoot.Save(projectFilePath); return(projectRoot); }
public void IntTargets_SonarPaths_TeamBuildBuildDirNotSet() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.TeamBuildLegacyBuildDirectory = ""; preImportProperties.TeamBuild2105BuildDirectory = ""; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Act ProjectInstance projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
public void StyleCop_TempFolderIsNotSet() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties properties = new WellKnownProjectProperties(); properties.SonarQubeTempPath = ""; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, properties); BuildLogger logger = new BuildLogger(); // Act BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.SetStyleCopSettingsTarget); // Assert logger.AssertTargetNotExecuted(TargetConstants.SetStyleCopSettingsTarget); }
public void Roslyn_SetResults_ResultsFileDoesNotExist() { // Arrange var rootInputFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Inputs"); var properties = new WellKnownProjectProperties { SonarQubeTempPath = rootInputFolder }; var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, rootInputFolder, properties); // Act var result = BuildRunner.BuildTargets(TestContext, projectRoot.FullPath, TargetConstants.SetRoslynResultsTarget); // Assert result.AssertTargetExecuted(TargetConstants.SetRoslynResultsTarget); AssertAnalysisSettingDoesNotExist(result, RoslynAnalysisResultsSettingName); }
public void Roslyn_SetResults_TempFolderIsNotSet() { // Arrange var rootInputFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Inputs"); var properties = new WellKnownProjectProperties { SonarQubeTempPath = "" }; var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, rootInputFolder, properties); // Act var result = BuildRunner.BuildTargets(TestContext, projectRoot.FullPath, TargetConstants.SetRoslynResultsTarget); // Assert result.AssertTargetNotExecuted(TargetConstants.SetRoslynResultsTarget); }
/// <summary> /// Creates a valid project with the necessary ruleset and assembly files on disc /// to successfully run the "OverrideRoslynCodeAnalysisProperties" target /// </summary> private ProjectRootElement CreateValidProjectSetup(WellKnownProjectProperties properties) { var sqTempFolder = TestUtils.CreateTestSpecificFolder(TestContext); var projectProperties = properties ?? new WellKnownProjectProperties(); var projectFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Project"); projectProperties.SonarQubeTempPath = sqTempFolder; projectProperties[TargetProperties.Language] = "C#"; var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, projectFolder, projectProperties); AddCaptureTargetsImport(projectFolder, projectRoot); var projectFilePath = Path.Combine(projectFolder, "valid.project.proj"); projectRoot.Save(projectFilePath); return(projectRoot); }
public void IntTargets_SonarPaths_TeamBuildPropertySet_NonLegacy() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeTempPath = @"t:\TeamBuildDir_NonLegacy\.sonarqube"; // FIXME preImportProperties.TeamBuildLegacyBuildDirectory = ""; preImportProperties.TeamBuild2105BuildDirectory = @"t:\TeamBuildDir_NonLegacy"; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); // Act ProjectInstance 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 Roslyn_SetResults_ResultsFileDoesNotExist() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); WellKnownProjectProperties properties = new WellKnownProjectProperties(); properties.SonarQubeTempPath = rootInputFolder; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, properties); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.SetRoslynResultsTarget); // Assert logger.AssertTargetExecuted(TargetConstants.SetRoslynResultsTarget); BuildAssertions.AssertAnalysisSettingDoesNotExist(result, RoslynAnalysisResultsSettingName); }
public void IntTargets_SonarPaths_TeamBuildPropertySet_Legacy() { // Arrange var rootInputFolder = TestUtils.CreateTestSpecificFolder(TestContext, "Inputs"); var preImportProperties = new WellKnownProjectProperties { SonarQubeTempPath = @"t:\TeamBuildDir_Legacy\.sonarqube", TeamBuildLegacyBuildDirectory = @"t:\TeamBuildDir_Legacy", TeamBuild2105BuildDirectory = "" }; var projectRoot = BuildUtilities.CreateValidProjectRoot(TestContext, rootInputFolder, preImportProperties); // Act var projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeOutputPath, @"t:\TeamBuildDir_Legacy\.sonarqube\out"); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeConfigPath, @"t:\TeamBuildDir_Legacy\.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 E2E_FxCop_OutputFolderSet_SonarRulesetNotFound() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); string rootOutputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Outputs"); // Set the output folder and config path // Don't create a ruleset file on disc string fxCopLogFile = Path.Combine(rootInputFolder, "FxCopResults.xml"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeTempPath = rootOutputFolder; // FIXME preImportProperties.SonarQubeOutputPath = rootOutputFolder; preImportProperties.RunCodeAnalysis = "true"; // our targets should override this value preImportProperties.CodeAnalysisLogFile = fxCopLogFile; preImportProperties.SonarQubeConfigPath = rootInputFolder; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger); // Assert BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget); logger.AssertTargetExecuted(TargetConstants.OverrideFxCopSettingsTarget); // output folder is set so this should be executed logger.AssertTargetNotExecuted(TargetConstants.SetFxCopResultsTarget); // We expect the core FxCop *target* to have been started, but it should then be skipped // executing the FxCop *task* because the condition on the target is false // -> the FxCop output file should not be produced AssertFxCopNotExecuted(logger); Assert.IsFalse(File.Exists(fxCopLogFile), "FxCop log file should not have been produced"); ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath); ProjectInfoAssertions.AssertAnalysisResultDoesNotExists(projectInfo, AnalysisType.FxCop.ToString()); }
public void Roslyn_TargetExecutionOrder() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); string rootOutputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Outputs"); WellKnownProjectProperties properties = new WellKnownProjectProperties { SonarQubeTempPath = rootInputFolder, SonarQubeOutputPath = rootInputFolder, SonarQubeConfigPath = rootOutputFolder }; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, properties); // Add some settings we expect to be ignored AddAnalysisSetting("sonar.other.setting", "other value", projectRoot); projectRoot.Save(); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.DefaultBuildTarget); // Assert // Checks that should succeed irrespective of the MSBuild version BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget); logger.AssertTargetExecuted(TargetConstants.OverrideRoslynAnalysisTarget); logger.AssertExpectedTargetOrdering( TargetConstants.ResolveCodeAnalysisRuleSet, TargetConstants.CategoriseProjectTarget, TargetConstants.OverrideRoslynAnalysisTarget, TargetConstants.SetRoslynAnalysisPropertiesTarget, TargetConstants.CoreCompile, TargetConstants.DefaultBuildTarget, TargetConstants.SetRoslynResultsTarget, TargetConstants.WriteProjectDataTarget); }
public void Roslyn_SetResults_ResultsFileExists() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); string resultsFile = TestUtils.CreateTextFile(rootInputFolder, "error.report.txt", "dummy report content"); WellKnownProjectProperties properties = new WellKnownProjectProperties(); properties.SonarQubeTempPath = rootInputFolder; properties[TargetProperties.ErrorLog] = resultsFile; ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, properties); BuildLogger logger = new BuildLogger(); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.SetRoslynResultsTarget); // Assert logger.AssertTargetExecuted(TargetConstants.SetRoslynResultsTarget); BuildAssertions.AssertExpectedAnalysisSetting(result, RoslynAnalysisResultsSettingName, resultsFile); }
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"); }
public void E2E_FxCop_AllConditionsMet_VB() { // 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.RunCodeAnalysis = "false"; preImportProperties.CodeAnalysisLogFile = fxCopLogFile; preImportProperties.CodeAnalysisRuleset = "specifiedInProject.ruleset"; preImportProperties.TreatWarningsAsErrors = "true"; // we expect these values to be overridden preImportProperties.WarningsAsErrors = "VB0111;VB0222"; preImportProperties.WarningLevel = "0"; preImportProperties[TargetProperties.SonarQubeConfigPath] = rootInputFolder; CreateValidFxCopRuleset(rootInputFolder, string.Format(TargetProperties.SonarQubeRulesetFormat, "vbnet")); ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, preImportProperties, isVBProject: true); string itemPath = TestUtils.CreateTextFile(rootInputFolder, "my.vb", @"Public Class Class1 Public Sub DoStuff() End Sub End Class"); 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.DetectFxCopRulesetTarget, TargetConstants.CategoriseProjectTarget, TargetConstants.OverrideFxCopSettingsTarget, TargetConstants.FxCopTarget, TargetConstants.SetFxCopResultsTarget, TargetConstants.DefaultBuildTarget, TargetConstants.CalculateFilesToAnalyzeTarget, TargetConstants.WriteProjectDataTarget); AssertAllFxCopTargetsExecuted(logger); Assert.IsTrue(File.Exists(fxCopLogFile), "FxCop log file should have been produced"); BuildAssertions.AssertWarningsAreNotTreatedAsErrorsNorIgnored(result); ProjectInfo projectInfo = ProjectInfoAssertions.AssertProjectInfoExists(rootOutputFolder, projectRoot.FullPath); ProjectInfoAssertions.AssertAnalysisResultExists(projectInfo, AnalysisType.FxCop.ToString(), fxCopLogFile); }