testng console: to common test runner

This commit is contained in:
anna
2010-05-21 10:03:09 +04:00
parent 20d8259456
commit 87fb647edb
4 changed files with 30 additions and 53 deletions
@@ -20,6 +20,7 @@ import com.intellij.execution.PsiLocation;
import com.intellij.execution.stacktrace.StackTraceLine;
import com.intellij.execution.testframework.AbstractTestProxy;
import com.intellij.execution.testframework.Filter;
import com.intellij.execution.testframework.Printable;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.ide.util.EditSourceUtil;
import com.intellij.openapi.application.ApplicationManager;
@@ -28,7 +29,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.pom.Navigatable;
import com.intellij.psi.*;
import com.theoryinpractice.testng.ui.Printable;
import com.theoryinpractice.testng.ui.TestNGConsoleView;
import org.jetbrains.annotations.Nullable;
import org.testng.remote.strprotocol.MessageHelper;
@@ -1,26 +0,0 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.theoryinpractice.testng.ui;
import com.intellij.execution.ui.ConsoleView;
/**
* @author Hani Suleiman Date: Dec 1, 2006 Time: 12:57:22 PM
*/
public interface Printable
{
void print(ConsoleView console);
}
@@ -24,7 +24,10 @@ package com.theoryinpractice.testng.ui;
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.filters.HyperlinkInfo;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.testframework.*;
import com.intellij.execution.testframework.Printable;
import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView;
import com.intellij.execution.testframework.ui.TestResultsPanel;
import com.intellij.execution.ui.ConsoleView;
@@ -98,7 +101,7 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView {
String trimmed = trimStackTrace(stackTrace);
List<Printable> printables = getPrintables(result, trimmed);
for (Printable printable : printables) {
printable.print(getConsole()); //enable for root element
printable.printOn(wrapConsoleView(getConsole())); //enable for root element
}
synchronized (currentTestOutput) {
exceptionMark = currentTestOutput.size();
@@ -231,25 +234,43 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView {
});
}
else {
getConsole().clear();
final ConsoleView consoleView = getConsole();
consoleView.clear();
int idx = 0;
int offset = 0;
for (Printable chunk : new ArrayList<Printable>(output)) {
chunk.print(getConsole());
chunk.printOn(wrapConsoleView(consoleView));
if (idx++ < i) {
offset = getConsole().getContentSize();
offset = consoleView.getContentSize();
}
}
getConsole().scrollTo(offset);
consoleView.scrollTo(offset);
}
}
private static Printer wrapConsoleView(final ConsoleView consoleView) {
return new Printer() {
public void print(String text, ConsoleViewContentType contentType) {
consoleView.print(text, contentType);
}
public void onNewAvailable(Printable printable) {}
public void printHyperlink(String text, HyperlinkInfo info) {
consoleView.printHyperlink(text, info);
}
public void mark() {
}
};
}
public static class Chunk implements Printable {
public String text;
public ConsoleViewContentType contentType;
public void print(ConsoleView console) {
console.print(text, contentType);
public void printOn(Printer printer) {
printer.print(text, contentType);
}
public Chunk(String text, ConsoleViewContentType contentType) {
@@ -15,34 +15,16 @@
*/
package com.theoryinpractice.testng.ui;
import com.intellij.execution.filters.HyperlinkInfo;
import com.intellij.execution.testframework.Printer;
import com.intellij.execution.testframework.stacktrace.DiffHyperlink;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.theoryinpractice.testng.model.TestNGConsoleProperties;
/**
* @author Hani Suleiman Date: Dec 1, 2006 Time: 12:14:04 PM
*/
public class TestNGDiffHyperLink extends DiffHyperlink implements Printable {
public class TestNGDiffHyperLink extends DiffHyperlink {
public TestNGDiffHyperLink(final String expected, final String actual, final String filePath, final TestNGConsoleProperties consoleProperties) {
super(expected, actual, filePath);
}
public void print(final ConsoleView printer) {
printOn(new Printer() {
public void print(final String text, final ConsoleViewContentType contentType) {
printer.print(text, contentType);
}
public void printHyperlink(final String text, final HyperlinkInfo info) {
printer.printHyperlink(text, info);
}
public void onNewAvailable(final com.intellij.execution.testframework.Printable printable) {}
public void mark() {}
});
}
}