coverage listeners cleanup: they should not depend on IDEA's classes (~coverage_rt)

This commit is contained in:
anna
2010-02-24 17:31:14 +03:00
parent 7ce92fc75a
commit e3e8ad612d
5 changed files with 30 additions and 16 deletions
@@ -22,10 +22,7 @@
*/
package com.intellij.execution;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.ModuleBasedConfiguration;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.configurations.RuntimeConfigurationException;
import com.intellij.execution.configurations.*;
import com.intellij.execution.process.OSProcessHandler;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.Extensions;
@@ -141,4 +138,8 @@ public abstract class RunConfigurationExtension {
extension.checkConfiguration(configuration);
}
}
public <T extends ModuleBasedConfiguration & RunJavaConfiguration> boolean isListenerDisabled(T configuration, Object listener) {
return false;
}
}
@@ -202,10 +202,18 @@ public abstract class TestObject implements JavaCommandLine {
final Object[] listeners = Extensions.getExtensions(IDEAJUnitListener.EP_NAME);
final StringBuffer buf = new StringBuffer();
for (final Object listener : listeners) {
if (!((IDEAJUnitListener)listener).isEnabled(myConfiguration)) continue;
final Class classListener = listener.getClass();
buf.append(classListener.getName()).append("\n");
myJavaParameters.getClassPath().add(PathUtil.getJarPathForClass(classListener));
boolean enabled = true;
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
if (ext.isListenerDisabled(myConfiguration, listener)) {
enabled = false;
break;
}
}
if (enabled) {
final Class classListener = listener.getClass();
buf.append(classListener.getName()).append("\n");
myJavaParameters.getClassPath().add(PathUtil.getJarPathForClass(classListener));
}
}
if (buf.length() > 0) {
try {
@@ -276,7 +284,7 @@ public abstract class TestObject implements JavaCommandLine {
packetsReceiver.checkTerminated();
final JUnitRunningModel model = packetsReceiver.getModel();
TestsUIUtil.notifyByBalloon(myProject, model != null ? model.getRoot() : null, consoleProperties,
Filter.DEFECTIVE_LEAF.and(JavaAwareFilter.METHOD(myProject)));
Filter.DEFECT);
}
});
}
@@ -26,5 +26,4 @@ public interface IDEAJUnitListener {
void testStarted(String className, String methodName);
void testFinished(String className, String methodName);
boolean isEnabled(Object configuration);
}
@@ -272,10 +272,18 @@ public class TestNGRunnableState extends JavaCommandLineState {
}
for (Object o : Extensions.getExtensions(IDEATestNGListener.EP_NAME)) {
if (!((IDEATestNGListener)o).isEnabled(config)) continue;
if (buf.length() > 0) buf.append(";");
buf.append(o.getClass().getName());
javaParameters.getClassPath().add(PathUtil.getJarPathForClass(o.getClass()));
boolean enabled = true;
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
if (extension.isListenerDisabled(config, o)) {
enabled = false;
break;
}
}
if (enabled) {
if (buf.length() > 0) buf.append(";");
buf.append(o.getClass().getName());
javaParameters.getClassPath().add(PathUtil.getJarPathForClass(o.getClass()));
}
}
if (buf.length() > 0) javaParameters.getProgramParametersList().add(TestNGCommandLineArgs.LISTENER_COMMAND_OPT, buf.toString());
@@ -22,6 +22,4 @@ package org.testng;
public interface IDEATestNGListener extends ITestListener {
String EP_NAME = "com.theoryinpractice.testng.listener";
boolean isEnabled(Object configuration);
}