diff --git a/tasks/templates/suite.html b/tasks/templates/suite.html
deleted file mode 100644
index 7444a82..0000000
--- a/tasks/templates/suite.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you 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.
-
--->
-
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>EXTERMINATE!</title>
-
-  <link rel="stylesheet" type="text/css" href="jasmine/jasmine.css">
-  <script type="text/javascript" src="jasmine-1.3.1.js"></script>
-  <script type="text/javascript" src="jasmine/jasmine-html.js"></script>
-
-  <script type="text/javascript">
-    (function() {
-      var jasmineEnv = jasmine.getEnv();
-      jasmineEnv.updateInterval = 1000;
-
-      var trivialReporter = new jasmine.TrivialReporter();
-
-      jasmineEnv.addReporter(trivialReporter);
-
-      jasmineEnv.specFilter = function(spec) {
-        return trivialReporter.specFilter(spec);
-      };
-
-      window.global = window;
-
-      window.addEventListener("load", function () {
-          jasmineEnv.execute();
-      });
-
-    })();
-  </script>
-
-  <script type="text/javascript" src="cordova.test.js"></script>
-
-  <script type="text/javascript">
-      var require = cordova.require;
-      var define = cordova.define;
-  </script>
-
-	<!-- ##TESTS## -->
-
-	<!-- Note: if you want to run individual tests, remove the tests placeholder above and include the individual tests yourself -->
-	<!-- <script src="test.accelerometer.js" type="text/javascript" charset="utf-8"></script> -->
-</head>
-
-<body>
-</body>
-</html>
