Beispiel #1
0
        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);
        }
Beispiel #3
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);
        }
Beispiel #4
0
        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);
        }