diff --git a/.gitignore b/.gitignore
index 9ff45ed9403e9605be77b992ccb62f3c996dc2a1..59d37de6f6caeeb9e82ca6c666bf9e5886f1aa3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 /bin
 /build
 /dist
+/reports
 /xtend-gen
 Thumbs.db
\ No newline at end of file
diff --git a/build.xml b/build.xml
index bfb5ebcd5ebe679f9866beeffcea42c0df3305b7..c6121aa66919180d948847b7736806f39a20b04b 100644
--- a/build.xml
+++ b/build.xml
@@ -1,46 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project name="Analysis" default="build-all-analysis" basedir=".">
-
-	<property name="src.dir" value="src"/>
+<project name="Worker" default="build-all-worker" basedir=".">
 	<property name="src-common.dir" value="../common-monitoring/src"/>
+	
+	<property name="src.dir" value="src"/>
 	<property name="build.dir" value="build"/>
 	<property name="jar.dir" value="dist"/>
-	<property name="lib.dir" value="lib"/>
-	<property name="classes.java" value="classes/java"/>
-
-	<path id="classpath">
-		<fileset dir=".">
-			<include name="${lib.dir}/*.jar"/>
-		</fileset>
-	</path>
-
-
-	<path id="classpath-test">
-		<pathelement location="${build.dir}/${classes.java}" />
-
-		<fileset dir=".">
-			<include name="${lib.dir}/*.jar"/>
-		</fileset>
-	</path>
+	
+	<property name="test.reports" value="reports"/>
+	<property name="test.src" value="test"/>
 
-	<target name="build-all-analysis" depends="clean,compile,analysis-jar" description="Compiles and packages the Jar">
+	<!-- MAIN JOBS -->
+	
+	<target name="build-all-worker" depends="clean,jar" description="Compiles and packages the Worker Jar">
 	</target>
 
 	<target name="clean" description="Removes artifacts from previous builds">
 		<delete dir="${build.dir}" includeemptydirs="true" />
 		<delete dir="${jar.dir}" includeemptydirs="true" />
 		<delete dir="${reports.dir}" includeemptydirs="true" />
-
 	</target>
 
-	<target name="compile">
-		<mkdir dir="${build.dir}"/>
-		<mkdir dir="${build.dir}/${classes.java}"/>
-		<javac srcdir="${src-common.dir}" destdir="${build.dir}/${classes.java}" classpathref="classpath" debug="true"/>
-		<javac srcdir="${src.dir}" destdir="${build.dir}/${classes.java}" classpathref="classpath" debug="true"/>
-	</target>
-	
-	<target name="analysis-jar" depends="compile">
+	<target name="jar" depends="compile">
 		<mkdir dir="${jar.dir}"/>
 		<jar destfile="${jar.dir}/explorviz-worker.jar">
 			<manifest>
@@ -48,11 +28,55 @@
 				<attribute name="Class-Path" value="."/>
 				<attribute name="Can-Redefine-Classes" value="true"/>
 			</manifest>
-			<fileset dir="${build.dir}/${classes.java}"/>
-			<fileset dir="${lib.dir}">
+			<fileset dir="${build.dir}"/>
+			<fileset dir="lib">
 				<include name="*.LICENSE"/>
 			</fileset>
-			<zipfileset excludes="META-INF/*.SF" src="${lib.dir}/disruptor-3.2.0.jar"/>
+			<zipfileset excludes="META-INF/*.SF" src="lib/disruptor-3.2.0.jar"/>
 		</jar>
 	</target>
+	
+	<target name="compile">
+		<mkdir dir="${build.dir}"/>
+		
+		<javac srcdir="${src-common.dir}" destdir="${build.dir}" classpathref="classpath" debug="true"/>
+		<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath" debug="true"/>
+	</target>
+	
+	<path id="classpath">
+		<fileset dir=".">
+			<include name="lib/*.jar"/>
+		</fileset>
+	</path>
+	
+	<!-- TEST JOBS -->
+	
+    <target name="test" depends="clean,compile-tests" description="JUnit-Tests">
+		<mkdir dir="${test.reports}" />
+		<junit printsummary="yes" fork="yes" haltonfailure="no">        
+			<classpath>
+				<path refid="testclasspath"/>
+			</classpath>
+			<formatter type="xml" />
+			<batchtest todir="${test.reports}">
+				<fileset dir="${test.src}"> 
+					<include name="**/*Test.java" /> 
+				</fileset>
+			</batchtest>
+		</junit>
+    </target>
+	
+	<target name="compile-tests" depends="jar">
+		<mkdir dir="${build.dir}"/>
+        <javac srcdir="${test.src}" destdir="${build.dir}" includeantruntime="false">
+			<classpath>
+				<path refid="testclasspath"/>
+			</classpath>
+		</javac>
+    </target>
+	
+	<path id="testclasspath">
+ 		<pathelement path="${build.dir}" />
+		<fileset dir="lib" includes="*.jar" />
+	</path>
 </project>
\ No newline at end of file
diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar
new file mode 100644
index 0000000000000000000000000000000000000000..9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a
Binary files /dev/null and b/lib/hamcrest-core-1.3.jar differ
diff --git a/lib/junit-4.11.jar b/lib/junit-4.11.jar
new file mode 100644
index 0000000000000000000000000000000000000000..aaf74448492932e95902b40a70c7a4da5bad4744
Binary files /dev/null and b/lib/junit-4.11.jar differ