blob: 10482f05f18e11d163ce64bb9604199150ecaf57 [file] [log] [blame]
/*
* User: anna
* Date: 13-Feb-2008
*/
package com.intellij.coverage;
import com.intellij.coverage.info.CoberturaLoaderUtil;
import com.intellij.execution.configurations.SimpleJavaParameters;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.rt.coverage.data.ProjectData;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
public class CoberturaCoverageRunner extends JavaCoverageRunner {
public ProjectData loadCoverageData(@NotNull final File sessionDataFile, @Nullable final CoverageSuite coverageSuite) {
return CoberturaLoaderUtil.load(sessionDataFile);
}
public void appendCoverageArgument(final String sessionDataFilePath, final String[] patterns, final SimpleJavaParameters javaParameters,
final boolean collectLineInfo, final boolean isSampling) {
@NonNls StringBuffer argument = new StringBuffer("-javaagent:");
argument.append(PathManager.getLibPath()).append(File.separator);
argument.append("cobertura.jar=");
if (patterns != null && patterns.length > 0) {
for (String coveragePattern : patterns) {
coveragePattern = coveragePattern.replace("$", "\\$").replace(".", "\\.").replaceAll("\\*", ".*");
if (!coveragePattern.endsWith(".*")) { //include inner classes
coveragePattern += "(\\$.*)*";
}
argument.append("--includeClasses ").append(coveragePattern).append(" ");
}
}
if (SystemInfo.isWindows) {
argument.append("--datafile ").append("\\\"").append(sessionDataFilePath).append("\\\"");
}
else {
argument.append("--datafile ").append(sessionDataFilePath);
}
javaParameters.getVMParametersList().add(argument.toString());
javaParameters.getVMParametersList().defineProperty("net.sourceforge.cobertura.datafile", sessionDataFilePath);
javaParameters.getClassPath().add(PathManager.getLibPath() + File.separator + "cobertura.jar");
}
public String getPresentableName() {
return "Cobertura";
}
@NonNls
public String getId() {
return "cobertura";
}
@NonNls
public String getDataFileExtension() {
return "ser";
}
}