[P-unit-devel] SF.net SVN: p-unit: [296] trunk/punit/src/org/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2008-04-18 00:53:46
|
Revision: 296
http://p-unit.svn.sourceforge.net/p-unit/?rev=296&view=rev
Author: zhanghuangzhu
Date: 2008-04-17 17:53:53 -0700 (Thu, 17 Apr 2008)
Log Message:
-----------
az: simplify test suite builder logic.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/AbstractRunner.java
trunk/punit/src/org/punit/runner/ConcurrentRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit/src/org/punit/runner/SoloRunner.java
trunk/punit/src/org/punit/runner/VanillaRunner.java
Removed Paths:
-------------
trunk/punit/src/org/punit/suite/builder/
Modified: trunk/punit/src/org/punit/runner/AbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/AbstractRunner.java 2008-04-17 02:18:56 UTC (rev 295)
+++ trunk/punit/src/org/punit/runner/AbstractRunner.java 2008-04-18 00:53:53 UTC (rev 296)
@@ -16,14 +16,11 @@
import org.punit.method.runner.*;
import org.punit.reporter.*;
import org.punit.reporter.stream.console.*;
-import org.punit.suite.builder.*;
import org.punit.type.*;
import org.punit.util.*;
public abstract class AbstractRunner implements Runner {
- private TestSuiteBuilder _testSuiteBuiler;
-
private TestMethodBuilder _testMethodBuilder;
private MethodRunner _methodRunner;
@@ -46,9 +43,7 @@
private AtomicBoolean _isAlive = new AtomicBoolean(true);
- public AbstractRunner(TestSuiteBuilder testSuiteBuiler,
- TestMethodBuilder testMethodBuilder, MethodRunner testMethodRunner) {
- _testSuiteBuiler = testSuiteBuiler;
+ public AbstractRunner(TestMethodBuilder testMethodBuilder, MethodRunner testMethodRunner) {
_testMethodBuilder = testMethodBuilder;
_methodRunner = testMethodRunner;
_methodRunner.setRunner(this);
@@ -59,37 +54,65 @@
public void setConvention(Convention convention) {
_convention = convention;
- _testSuiteBuiler.setConvention(convention);
_testMethodBuilder.setConvention(convention);
_methodRunner.setConvention(convention);
}
public int run(Class<?> clazz) {
onRunnerStart(clazz);
- Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
- runTestClasses(testClasses);
+ startExecutorPool();
+ runTest(clazz);
+ waitExecutorPoolTermination();
onRunnerEnd(clazz);
return _testResult.failures().size();
}
+
+ @SuppressWarnings("unchecked")
+ private void runTest(Class<?> clazz) {
+ if(isTestSuite(clazz)) {
+ runTestSuite((Class<? extends TestSuite>) clazz);
+ } else {
+ runTestClass(clazz);
+ }
+ }
+
+ private boolean isTestSuite(Class<?> clazz) {
+ return TestSuite.class.isAssignableFrom(clazz);
+ }
+
+ private void runTestSuite(Class <? extends TestSuite> testSuiteClass) {
+ if(_convention.isExcluded(testSuiteClass)) {
+ return;
+ }
+ final TestSuite suite = (TestSuite) ReflectionUtil.newInstance(testSuiteClass);
+ onSuiteStart(suite);
+ for(Class<?> clazz : suite.testSuite()) {
+ runTest(clazz);
+ }
+ onSuiteEnd(suite);
+ }
+ private void onSuiteStart(final TestSuite suite) {
+ notifyListeners(new Notifier() {
+ public void run(EventListener listener) {
+ listener.onSuiteStart(suite);
+ }
+ });
+ }
+
+ private void onSuiteEnd(final TestSuite suite) {
+ notifyListeners(new Notifier() {
+ public void run(EventListener listener) {
+ listener.onSuiteEnd(suite);
+ }
+ });
+ }
+
public int run(Class<?> clazz, RunnerProperties properties) {
setRunnerProperties(properties);
return run(clazz);
}
- private void runTestClasses(Object[] testClasses) {
- startExecutorPool();
- for (int i = 0; i < testClasses.length && isAlive(); ++i) {
- Object testClass = testClasses[i];
- if (isTestSuiteLabel(testClass)) {
- onSuite(((TestSuiteLabel) testClass));
- } else {
- runTestClass((Class<?>) testClass);
- }
- }
- waitExecutorPoolTermination();
- }
-
public void setExecutorPool(ExecutorPool pool) {
_executorPool = pool;
}
@@ -294,19 +317,6 @@
});
}
- private void onSuite(final TestSuiteLabel suiteLabel) {
- notifyListeners(new Notifier() {
- public void run(EventListener listener) {
- TestSuite suite = suiteLabel.suite();
- if (suiteLabel.isStart()) {
- listener.onSuiteStart(suite);
- } else {
- listener.onSuiteEnd(suite);
- }
- }
- });
- }
-
private void onClassStart(final Object testInstance) {
notifyListeners(new Notifier() {
public void run(EventListener listener) {
@@ -365,10 +375,6 @@
return _methodRunner;
}
- public TestSuiteBuilder suiteBuilder() {
- return _testSuiteBuiler;
- }
-
private void registerDefaultListeners() {
addInternalEventListener(_testResult);
addEventListener(_consoleLogger);
@@ -398,10 +404,6 @@
return _consoleLogger;
}
- private boolean isTestSuiteLabel(Object testClass) {
- return testClass instanceof TestSuiteLabel;
- }
-
public Object clone() {
try {
AbstractRunner runner = (AbstractRunner) super.clone();
Modified: trunk/punit/src/org/punit/runner/ConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/ConcurrentRunner.java 2008-04-17 02:18:56 UTC (rev 295)
+++ trunk/punit/src/org/punit/runner/ConcurrentRunner.java 2008-04-18 00:53:53 UTC (rev 296)
@@ -1,11 +1,10 @@
/* (C) Copyright 2007, by Andrew Zhang */
package org.punit.runner;
-import org.punit.message.Messages;
-import org.punit.method.builder.MethodBuilderImpl;
-import org.punit.method.runner.ConcurrentMethodRunner;
-import org.punit.suite.builder.TestSuiteBuilderImpl;
-import org.punit.util.RunnerUtil;
+import org.punit.message.*;
+import org.punit.method.builder.*;
+import org.punit.method.runner.*;
+import org.punit.util.*;
public class ConcurrentRunner extends AbstractRunner {
@@ -22,7 +21,7 @@
}
public ConcurrentRunner(int concurrentCount) {
- super(new TestSuiteBuilderImpl(), new MethodBuilderImpl(), new ConcurrentMethodRunner(concurrentCount));
+ super(new MethodBuilderImpl(), new ConcurrentMethodRunner(concurrentCount));
}
public String punitName() {
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2008-04-17 02:18:56 UTC (rev 295)
+++ trunk/punit/src/org/punit/runner/Runner.java 2008-04-18 00:53:53 UTC (rev 296)
@@ -2,14 +2,13 @@
package org.punit.runner;
-import java.io.Serializable;
+import java.io.*;
-import org.punit.events.EventRegistry;
-import org.punit.method.builder.TestMethodBuilder;
-import org.punit.method.runner.MethodRunner;
-import org.punit.reporter.TestResult;
-import org.punit.suite.builder.TestSuiteBuilder;
-import org.punit.type.Name;
+import org.punit.events.*;
+import org.punit.method.builder.*;
+import org.punit.method.runner.*;
+import org.punit.reporter.*;
+import org.punit.type.*;
public interface Runner extends EventRegistry, Name, Serializable, Cloneable {
@@ -23,8 +22,6 @@
public MethodRunner methodRunner();
- public TestSuiteBuilder suiteBuilder();
-
public TestResult testResult();
public void resultFolder(String folder);
Modified: trunk/punit/src/org/punit/runner/SoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/SoloRunner.java 2008-04-17 02:18:56 UTC (rev 295)
+++ trunk/punit/src/org/punit/runner/SoloRunner.java 2008-04-18 00:53:53 UTC (rev 296)
@@ -5,7 +5,6 @@
import org.punit.message.*;
import org.punit.method.builder.*;
import org.punit.method.runner.*;
-import org.punit.suite.builder.*;
import org.punit.util.*;
public class SoloRunner extends AbstractRunner {
@@ -17,8 +16,7 @@
}
public SoloRunner() {
- super(new TestSuiteBuilderImpl(), new MethodBuilderImpl(),
- new SoloMethodRunner());
+ super(new MethodBuilderImpl(), new SoloMethodRunner());
}
public String punitName() {
Modified: trunk/punit/src/org/punit/runner/VanillaRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/VanillaRunner.java 2008-04-17 02:18:56 UTC (rev 295)
+++ trunk/punit/src/org/punit/runner/VanillaRunner.java 2008-04-18 00:53:53 UTC (rev 296)
@@ -7,7 +7,6 @@
import org.punit.method.builder.*;
import org.punit.method.runner.*;
import org.punit.reporter.*;
-import org.punit.suite.builder.*;
public class VanillaRunner implements Runner {
@@ -47,10 +46,6 @@
return _runner.run(clazz, properties);
}
- public TestSuiteBuilder suiteBuilder() {
- return _runner.suiteBuilder();
- }
-
public TestResult testResult() {
return _runner.testResult();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|