diff --git a/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/AllTests.java b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/AllTests.java
new file mode 100644
index 0000000..9fa095a
--- /dev/null
+++ b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/AllTests.java
@@ -0,0 +1,20 @@
+package org.eclipse.dltk.tcl.ui.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+	public static Test suite() {
+		TestSuite suite = new TestSuite(
+				"Test for org.eclipse.dltk.tcl.ui.tests");
+		//$JUnit-BEGIN$
+//		suite.addTest(org.eclipse.dltk.tcl.ui.tests.dialogs.AllTests.suite());
+		suite.addTest(org.eclipse.dltk.tcl.ui.tests.folding.AllTests.suite());
+		suite.addTest(org.eclipse.dltk.tcl.ui.tests.indenting.AllTests.suite());
+		suite.addTest(org.eclipse.dltk.tcl.ui.tests.wizardapi.AllTests.suite());
+		//$JUnit-END$
+		return suite;
+	}
+
+}
diff --git a/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/dialogs/AllTests.java b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/dialogs/AllTests.java
new file mode 100644
index 0000000..71939fd
--- /dev/null
+++ b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/dialogs/AllTests.java
@@ -0,0 +1,20 @@
+package org.eclipse.dltk.tcl.ui.tests.dialogs;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+	public static Test suite() {
+		TestSuite suite = new TestSuite(
+				"Test for org.eclipse.dltk.tcl.ui.tests.dialogs");
+		//$JUnit-BEGIN$
+		suite.addTestSuite(NewEmptyProjectWizardTest.class);
+		suite.addTest(NewProjectWizardTest.suite());
+		suite.addTestSuite(NewProjectWizardOperationTest.class);
+		suite.addTestSuite(NewProjectTestSetup.class);
+		//$JUnit-END$
+		return suite;
+	}
+
+}
diff --git a/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/wizardapi/AllTests.java b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/wizardapi/AllTests.java
new file mode 100644
index 0000000..e611390
--- /dev/null
+++ b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/src/org/eclipse/dltk/tcl/ui/tests/wizardapi/AllTests.java
@@ -0,0 +1,17 @@
+package org.eclipse.dltk.tcl.ui.tests.wizardapi;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+	public static Test suite() {
+		TestSuite suite = new TestSuite(
+				"Test for org.eclipse.dltk.tcl.ui.tests.wizardapi");
+		//$JUnit-BEGIN$
+		suite.addTest(NewTCLProjectWizardTest.suite());
+		//$JUnit-END$
+		return suite;
+	}
+
+}
diff --git a/tcl/tests/org.eclipse.dltk.tcl.ui.tests/test.xml b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/test.xml
new file mode 100644
index 0000000..4e2b7dc
--- /dev/null
+++ b/tcl/tests/org.eclipse.dltk.tcl.ui.tests/test.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+  <!-- The property ${eclipse-home} should be passed into this script -->
+  <!-- Set a meaningful default value for when it is not. -->
+  <property name="eclipse-home" value="${basedir}\..\.."/>
+
+  <!-- sets the properties eclipse-home, and library-file -->
+  <property name="plugin-name" value="org.eclipse.dltk.tcl.ui.tests"/>
+  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.2.0/library.xml"/>
+            
+  <property name="workspace" value="${basedir}/${plugin-name}/workspace"/>
+
+  <!-- This target holds all initialization code that needs to be done for -->
+  <!-- all tests that are to be run. Initialization for individual tests -->
+  <!-- should be done within the body of the suite target. -->
+  <target name="init">
+    <tstamp/>
+    <delete>
+      <fileset dir="${eclipse-home}" includes="org*.xml"/>
+    </delete>
+  </target>
+
+  <!-- This target defines the tests that need to be run. -->
+  <target name="suite">
+    <delete dir="${workspace}" quiet="true"/>
+    
+    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
+      <property name="data-dir" value="${workspace}"/>
+      <property name="plugin-name" value="${plugin-name}"/>
+      <property name="classname" value="org.eclipse.dltk.tcl.ui.tests.AllTests"/>
+    </ant>
+  </target>
+    
+  <!-- This target holds code to cleanup the testing environment after -->
+  <!-- after all of the tests have been run. You can use this target to -->
+  <!-- delete temporary files that have been created. -->
+  <target name="cleanup">
+	<delete dir="${workspace}" quiet="true"/>
+  </target>
+
+  <!-- This target runs the test suite. Any actions that need to happen -->
+  <!-- after all the tests have been run should go here. -->
+  <target name="run" depends="init,suite,cleanup">
+    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+      <property name="includes" value="org*.xml"/>
+      <property name="output-file" value="${plugin-name}.xml"/>
+    </ant>
+  </target>
+
+</project>
+
+
+
