public void ImportsBefore_SonarQubeTargetsPathNotSet() { // 1. Prebuild // Arrange string dummyAnalysisTargetsDir = this.EnsureDummyIntegrationTargetsFileExists(); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeTargetsPath = ""; preImportProperties.TeamBuild2105BuildDirectory = ""; preImportProperties.TeamBuildLegacyBuildDirectory = ""; // Act ProjectInstance projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeTargetFilePath); AssertAnalysisTargetsAreNotImported(projectInstance); // 2. Now build -> succeeds. Info target not executed BuildLogger logger = new BuildLogger(); BuildResult result = BuildUtilities.BuildTargets(projectInstance, logger); BuildAssertions.AssertTargetSucceeded(result, TargetConstants.DefaultBuildTarget); logger.AssertTargetNotExecuted(TargetConstants.ImportBeforeInfoTarget); logger.AssertExpectedErrorCount(0); }
public void ImportsBefore_SonarQubeTargetsPathNotSet() { // 1. Prebuild // Arrange var projectXml = @" <PropertyGroup> <SonarQubeTargetsPath /> <AGENT_BUILDDIRECTORY /> <TF_BUILD_BUILDDIRECTORY /> </PropertyGroup> "; var projectFilePath = CreateProjectFile(projectXml); // Act var projectInstance = CreateAndEvaluateProject(projectFilePath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeTargetFilePath); AssertAnalysisTargetsAreNotImported(projectInstance); // 2. Now build -> succeeds. Info target not executed var result = BuildRunner.BuildTargets(TestContext, projectInstance.FullPath); result.AssertTargetSucceeded(TargetConstants.DefaultBuildTarget); result.AssertTargetNotExecuted(TargetConstants.ImportBeforeInfoTarget); result.AssertExpectedErrorCount(0); }
public void E2E_FxCop_NotExecutedOnCppProjects() { string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); string rootOutputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Outputs"); WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.SonarQubeTempPath = rootOutputFolder; preImportProperties.SonarQubeOutputPath = rootOutputFolder; preImportProperties.SonarQubeConfigPath = rootInputFolder; preImportProperties["Language"] = "C++"; 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); BuildAssertions.AssertPropertyDoesNotExist(result.ProjectStateAfterBuild, "RunCodeAnalysisOnce"); AssertFxCopNotExecuted(logger); }
public void ImportsBefore_SonarQubeTargetsPathNotSet() { // 1. Prebuild // Arrange EnsureDummyIntegrationTargetsFileExists(); var preImportProperties = new WellKnownProjectProperties { SonarQubeTargetsPath = "", TeamBuild2105BuildDirectory = "", TeamBuildLegacyBuildDirectory = "" }; // Act var projectInstance = CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeTargetFilePath); AssertAnalysisTargetsAreNotImported(projectInstance); // 2. Now build -> succeeds. Info target not executed var result = BuildRunner.BuildTargets(TestContext, projectInstance.FullPath); result.AssertTargetSucceeded(TargetConstants.DefaultBuildTarget); result.AssertTargetNotExecuted(TargetConstants.ImportBeforeInfoTarget); result.AssertExpectedErrorCount(0); }
public void ImportsBefore_MissingAnalysisTargets() { // 1. Prebuild // Arrange WellKnownProjectProperties preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = "true"; preImportProperties.MSBuildExtensionsPath = "nonExistentPath"; preImportProperties.TeamBuild2105BuildDirectory = ""; preImportProperties.TeamBuildLegacyBuildDirectory = ""; // Act ProjectInstance projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeTargetsPath); // path doesn't have a default value BuildAssertions.AssertPropertyExists(projectInstance, TargetProperties.SonarQubeTargetFilePath); // ... but the target file path does BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.SonarQubeTargetFilePath, "\\" + TargetConstants.AnalysisTargetFile); AssertAnalysisTargetsAreNotImported(projectInstance); // Targets do not exist at that location so they should not be imported // 2. Now build -> fails with an error message BuildLogger logger = new BuildLogger(); BuildResult result = BuildUtilities.BuildTargets(projectInstance, logger); BuildAssertions.AssertTargetFailed(result, TargetConstants.DefaultBuildTarget); logger.AssertTargetExecuted(TargetConstants.ImportBeforeInfoTarget); logger.AssertExpectedErrorCount(1); string projectName = Path.GetFileName(projectInstance.FullPath); Assert.IsTrue(logger.Errors[0].Message.Contains(projectName), "Expecting the error message to contain the project file name"); }
public void ImportsBefore_AutoImport_NotAutoImported() { // 0. Set up WellKnownProjectProperties preImportProperties; string testDir = TestUtils.EnsureTestSpecificFolder(this.TestContext); string configFilePath = this.EnsureDummyAnalysisConfigFileExists(testDir); // 1. RunSonarQubeAnalysis is set -> not auto-imported preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = "foo"; preImportProperties.TeamBuild2105BuildDirectory = testDir; preImportProperties.TeamBuildLegacyBuildDirectory = ""; preImportProperties.SonarQubeTargetsPath = "shouldn't matter if this is set"; // Act ProjectInstance projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.AutoImportProperty); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.RunSonarQubeAnalysis, "foo"); // 2. TeamBuild paths are not set -> not auto-imported preImportProperties = new WellKnownProjectProperties(); preImportProperties.RunSonarQubeAnalysis = ""; preImportProperties.TeamBuild2105BuildDirectory = ""; preImportProperties.TeamBuildLegacyBuildDirectory = ""; preImportProperties.SonarQubeTargetsPath = "shouldn't matter if this is set"; // Act projectInstance = this.CreateAndEvaluateProject(preImportProperties); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.AutoImportProperty); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.RunSonarQubeAnalysis, ""); // 3. File does not exist -> not auto-imported File.Delete(configFilePath); 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.AssertPropertyDoesNotExist(projectInstance, TargetProperties.AutoImportProperty); BuildAssertions.AssertExpectedPropertyValue(projectInstance, TargetProperties.RunSonarQubeAnalysis, ""); }
public void IntTargets_TempFolderIsNotSet() { // Arrange var filePath = CreateProjectFile(null, null); // Act var projectInstance = new ProjectInstance(filePath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
public void IntTargets_TempFolderIsNotSet() { // Arrange string rootInputFolder = TestUtils.CreateTestSpecificFolder(this.TestContext, "Inputs"); ProjectRootElement projectRoot = BuildUtilities.CreateValidProjectRoot(this.TestContext, rootInputFolder, null); // Act ProjectInstance projectInstance = new ProjectInstance(projectRoot.FullPath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
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); }
public void IntTargets_SonarPaths_TeamBuildBuildDirNotSet() { // Arrange string projectXml = $@" <ProjectGroup> <TF_BUILD_BUILDDIRECTORY /> <AGENT_BUILDDIRECTORY /> </ProjectGroup> "; var projectFilePath = CreateProjectFile(TestContext, null); // Act var projectInstance = new ProjectInstance(projectFilePath); // Assert BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeOutputPath); BuildAssertions.AssertPropertyDoesNotExist(projectInstance, TargetProperties.SonarQubeConfigPath); }
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); }