public void Roslyn_Settings_TempFolderIsNotSet() { // Arrange BuildLogger logger = new BuildLogger(); WellKnownProjectProperties properties = new WellKnownProjectProperties { ErrorLog = "pre-existing.log", ResolvedCodeAnalysisRuleset = "pre-existing.ruleset", WarningsAsErrors = "CS101", TreatWarningsAsErrors = "true" }; ProjectRootElement projectRoot = CreateValidProjectSetup(properties); projectRoot.AddProperty(TargetProperties.SonarQubeTempPath, string.Empty); // needs to overwritten once the valid project has been created // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.OverrideRoslynAnalysisTarget); // Assert logger.AssertTargetNotExecuted(TargetConstants.OverrideRoslynAnalysisTarget); logger.AssertTargetNotExecuted(TargetConstants.SetRoslynAnalysisPropertiesTarget); // Existing properties should not be changed AssertExpectedErrorLog(result, "pre-existing.log"); AssertExpectedResolvedRuleset(result, "pre-existing.ruleset"); BuildAssertions.AssertExpectedItemGroupCount(result, TargetProperties.AnalyzerItemType, 0); BuildAssertions.AssertExpectedItemGroupCount(result, TargetProperties.AdditionalFilesItemType, 0); BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.TreatWarningsAsErrors, "true"); BuildAssertions.AssertExpectedPropertyValue(result.ProjectStateAfterBuild, TargetProperties.WarningsAsErrors, "CS101"); }
private void AssertExpectedItemValuesExists(BuildResult result, string itemType, params string[] expectedValues) { this.DumpLists(result, itemType, expectedValues); foreach (string expectedValue in expectedValues) { BuildAssertions.AssertSingleItemExists(result, itemType, expectedValue); } BuildAssertions.AssertExpectedItemGroupCount(result, itemType, expectedValues.Length); }
private void AssertExpectedAnalyzersExists(BuildResult result, params string[] analyzerFilePaths) { this.DumpAnalyzerLists(result, analyzerFilePaths); foreach (string filePath in analyzerFilePaths) { BuildAssertions.AssertSingleItemExists(result, TargetProperties.AnalyzerItemType, filePath); } BuildAssertions.AssertExpectedItemGroupCount(result, TargetProperties.AnalyzerItemType, analyzerFilePaths.Length); }
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 { SonarQubeConfigPath = confDir, ResolvedCodeAnalysisRuleset = "c:\\should.be.overridden.ruleset" }; ProjectRootElement projectRoot = CreateValidProjectSetup(properties); projectRoot.AddItem(TargetProperties.AnalyzerItemType, "should.be.removed.analyzer1.dll"); const string additionalFileName = "should.not.be.removed.additional1.txt"; projectRoot.AddItem(TargetProperties.AdditionalFilesItemType, additionalFileName); // Act BuildResult result = BuildUtilities.BuildTargets(projectRoot, logger, TargetConstants.OverrideRoslynAnalysisTarget); string projectSpecificConfFilePath = result.ProjectStateAfterBuild.GetPropertyValue(TargetProperties.ProjectConfFilePath); string[] expectedRoslynAdditionalFiles = new string[] { projectSpecificConfFilePath, additionalFileName /* additional files are not removed any longer */ }; // 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); AssertExpectedItemValuesExists(result, TargetProperties.AdditionalFilesItemType, expectedRoslynAdditionalFiles); }