Browse Source

SQSCANNER-28 Support sonar.scanner.skip without connecting to server

tags/2.8
Duarte Meneses 7 years ago
parent
commit
516ba9b922

+ 10
- 0
it/src/test/java/com/sonar/runner/it/JavaTest.java View File

orchestrator.executeBuild(build); orchestrator.executeBuild(build);
} }


@Test
public void should_skip_analysis() {
SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.host.url", "http://foo")
.setEnvironmentVariable("SONARQUBE_SCANNER_PARAMS", "{ \"sonar.scanner.skip\":\"true\" }");

BuildResult result = orchestrator.executeBuild(build);
assertThat(result.getLogs()).contains("SonarQube Scanner analysis skipped");
}

@Test @Test
public void should_fail_if_unable_to_connect() { public void should_fail_if_unable_to_connect() {
SonarScanner build = newScanner(new File("projects/java-sample")) SonarScanner build = newScanner(new File("projects/java-sample"))

+ 1
- 1
pom.xml View File

<dependency> <dependency>
<groupId>org.sonarsource.scanner.api</groupId> <groupId>org.sonarsource.scanner.api</groupId>
<artifactId>sonar-scanner-api</artifactId> <artifactId>sonar-scanner-api</artifactId>
<version>2.7</version>
<version>2.8-build684</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.code.findbugs</groupId> <groupId>com.google.code.findbugs</groupId>

+ 9
- 0
src/main/java/org/sonarsource/scanner/cli/Main.java View File

import java.io.IOException; import java.io.IOException;
import java.util.Properties; import java.util.Properties;
import org.sonarsource.scanner.api.EmbeddedScanner; import org.sonarsource.scanner.api.EmbeddedScanner;
import org.sonarsource.scanner.api.ScanProperties;


/** /**
* Arguments : * Arguments :


try { try {
Properties p = conf.properties(); Properties p = conf.properties();
checkSkip(p);
configureLogging(p); configureLogging(p);
init(p); init(p);
runner.start(); runner.start();
runner.stop(); runner.stop();
exit.exit(Exit.SUCCESS); exit.exit(Exit.SUCCESS);
} }
private void checkSkip(Properties properties) {
if ("true".equalsIgnoreCase(properties.getProperty(ScanProperties.SKIP))) {
logger.info("SonarQube Scanner analysis skipped");
exit.exit(Exit.SUCCESS);
}
}


private void init(Properties p) throws IOException { private void init(Properties p) throws IOException {
SystemInfo.print(logger); SystemInfo.print(logger);

+ 18
- 0
src/test/java/org/sonarsource/scanner/cli/MainTest.java View File

import org.mockito.Mockito; import org.mockito.Mockito;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.sonarsource.scanner.api.EmbeddedScanner; import org.sonarsource.scanner.api.EmbeddedScanner;
import org.sonarsource.scanner.api.ScanProperties;


import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
inOrder.verify(runnerFactory, times(1)).create(p); inOrder.verify(runnerFactory, times(1)).create(p);
inOrder.verify(exit, times(1)).exit(Exit.SUCCESS); inOrder.verify(exit, times(1)).exit(Exit.SUCCESS);
} }
@Test
public void should_skip() throws IOException {
Properties p = new Properties();
p.setProperty(ScanProperties.SKIP, "true");
when(conf.properties()).thenReturn(p);

Main main = new Main(exit, cli, conf, runnerFactory, logs);
main.execute();

verify(logs).info("SonarQube Scanner analysis skipped");
InOrder inOrder = Mockito.inOrder(exit, runnerFactory);

inOrder.verify(exit, times(1)).exit(Exit.SUCCESS);
inOrder.verify(runnerFactory, times(1)).create(p);
inOrder.verify(exit, times(1)).exit(Exit.SUCCESS);
}


@Test @Test
public void shouldLogServerVersion() throws IOException { public void shouldLogServerVersion() throws IOException {

Loading…
Cancel
Save