From 79b6b689a55116941f134aeb76e1bc4865a92a26 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Fri, 4 May 2018 16:10:33 +0200 Subject: [PATCH] Reactivate Category2 in QA * Reactivate Category2 in Jenkins * Execute ExternalIssueTest in its own Suite --- .../tests/issue/ExternalIssueSuite.java | 42 +++++++++++++++++++ .../tests/issue/ExternalIssueTest.java | 19 ++++----- .../org/sonarqube/tests/issue/IssueSuite.java | 1 - 3 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueSuite.java diff --git a/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueSuite.java b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueSuite.java new file mode 100644 index 00000000000..c5aa35f5f54 --- /dev/null +++ b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueSuite.java @@ -0,0 +1,42 @@ +/* + * SonarQube + * Copyright (C) 2009-2018 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonarqube.tests.issue; + +import com.sonar.orchestrator.Orchestrator; +import org.junit.ClassRule; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import util.ItUtils; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + ExternalIssueTest.class +}) +/** + * This test uses its own suite because it creates external rules + */ +public class ExternalIssueSuite { + + @ClassRule + public static final Orchestrator ORCHESTRATOR = ItUtils.newOrchestratorBuilder() + .addPlugin(ItUtils.xooPlugin()) + .build(); +} diff --git a/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java index 4639acc353a..5aa33193a6b 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java @@ -39,20 +39,17 @@ import static org.assertj.core.api.Assertions.assertThat; public class ExternalIssueTest { private static final String PROJECT_KEY = "project"; - // This class uses its own instance of the server because it creates external rules in it @ClassRule - public static final Orchestrator ORCHESTRATOR = ItUtils.newOrchestratorBuilder() - .addPlugin(ItUtils.xooPlugin()) - .build(); + public static final Orchestrator orchestrator = ExternalIssueSuite.ORCHESTRATOR; @Rule - public Tester tester = new Tester(ORCHESTRATOR); + public Tester tester = new Tester(orchestrator); @Before public void setUp() { - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/ExternalIssueTest/no-rules.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "no-rules"); + orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); + ItUtils.restoreProfile(orchestrator, getClass().getResource("/issue/ExternalIssueTest/no-rules.xml")); + orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "no-rules"); } @Test @@ -60,7 +57,7 @@ public class ExternalIssueTest { noIssues(); ruleDoesntExist("external_xoo:OneExternalIssuePerLine"); - ItUtils.runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", + ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.oneExternalIssuePerLine.activate", "true"); List issuesList = tester.wsClient().issues().search(new SearchRequest()).getIssuesList(); assertThat(issuesList).hasSize(17); @@ -76,7 +73,7 @@ public class ExternalIssueTest { ruleExists("external_xoo:OneExternalIssuePerLine"); // second analysis, issue tracking should work - ItUtils.runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", + ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.oneExternalIssuePerLine.activate", "true"); issuesList = tester.wsClient().issues().search(new SearchRequest()).getIssuesList(); assertThat(issuesList).hasSize(17); @@ -88,7 +85,7 @@ public class ExternalIssueTest { ruleDoesntExist("external_externalXoo:rule1"); ruleDoesntExist("external_externalXoo:rule2"); - ItUtils.runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", + ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.externalIssuesReportPaths", "externalIssues.json"); List issuesList = tester.wsClient().issues().search(new SearchRequest() diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java index 8afe1a764ea..cc6a0097e41 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java @@ -33,7 +33,6 @@ import static util.ItUtils.xooPlugin; AutoAssignTest.class, CommonRulesTest.class, CustomRulesTest.class, - ExternalIssueTest.class, IssueActionTest.class, IssueBulkChangeTest.class, IssueChangelogTest.class, -- 2.39.5