diff --git a/tests/.classpath b/tests/.classpath
index 32d4a0f0ad30f01b0ecf9507fe436b4174a68182..96fc0081ecc301c81d19b7b3b8bb932d63d379d5 100644
--- a/tests/.classpath
+++ b/tests/.classpath
@@ -2,8 +2,8 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/loganalysis"/>
-        <classpathentry exported="true" kind="var" path="TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/easymock_intermediates/javalib.jar" sourcepath="/TRADEFED_ROOT/external/easymock/src"/>
+	<classpathentry exported="true" kind="var" path="TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/easymock_intermediates/javalib.jar" sourcepath="/TRADEFED_ROOT/external/easymock/src"/>
+	<classpathentry kind="var" path="TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/junit-host_intermediates/javalib.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/src/com/android/loganalysis/UnitTests.java b/tests/src/com/android/loganalysis/UnitTests.java
index c50de347f98f442a28e9ce7f0bd6975a20441d3a..70c4bd3b00b40ce63443c61448393c5a20e39fa5 100644
--- a/tests/src/com/android/loganalysis/UnitTests.java
+++ b/tests/src/com/android/loganalysis/UnitTests.java
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2013 The Android Open Source Project
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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
  *
@@ -55,67 +55,63 @@ import com.android.loganalysis.util.config.ArgsOptionParserTest;
 import com.android.loganalysis.util.config.OptionSetterTest;
 import com.android.loganalysis.util.config.OptionUpdateRuleTest;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
 /**
  * A test suite for all Trade Federation unit tests.
  * <p/>
  * All tests listed here should be self-contained, and should not require any external dependencies.
  */
-public class UnitTests extends TestSuite {
+@RunWith(Suite.class)
+@SuiteClasses({
+    // item
+    BatteryDischargeItemTest.class,
+    DvmLockSampleItemTest.class,
+    GenericItemTest.class,
+    InterruptItemTest.class,
+    MemInfoItemTest.class,
+    MonkeyLogItemTest.class,
+    ProcrankItemTest.class,
+    SmartMonkeyLogItemTest.class,
+    SystemPropsItemTest.class,
+    TopItemTest.class,
+    WakelockItemTest.class,
 
-    public UnitTests() {
-        super();
+    // parser
+    AbstractSectionParserTest.class,
+    AnrParserTest.class,
+    BugreportParserTest.class,
+    CompactMemInfoParserTest.class,
+    DmesgParserTest.class,
+    EventsLogParserTest.class,
+    DvmLockSampleParserTest.class,
+    InterruptParserTest.class,
+    JavaCrashParserTest.class,
+    KernelLogParserTest.class,
+    LogcatParserTest.class,
+    MemInfoParserTest.class,
+    MonkeyLogParserTest.class,
+    NativeCrashParserTest.class,
+    ProcessUsageParserTest.class,
+    ProcrankParserTest.class,
+    SystemPropsParserTest.class,
+    TopParserTest.class,
+    TracesParserTest.class,
+    WakelockParserTest.class,
 
-        // item
-        addTestSuite(BatteryDischargeItemTest.class);
-        addTestSuite(DvmLockSampleItemTest.class);
-        addTestSuite(GenericItemTest.class);
-        addTestSuite(InterruptItemTest.class);
-        addTestSuite(MemInfoItemTest.class);
-        addTestSuite(MonkeyLogItemTest.class);
-        addTestSuite(ProcrankItemTest.class);
-        addTestSuite(SmartMonkeyLogItemTest.class);
-        addTestSuite(SystemPropsItemTest.class);
-        addTestSuite(TopItemTest.class);
-        addTestSuite(WakelockItemTest.class);
+    // util
+    ArrayUtilTest.class,
+    LogPatternUtilTest.class,
+    LogTailUtilTest.class,
+    RegexTrieTest.class,
 
-        // parser
-        addTestSuite(AbstractSectionParserTest.class);
-        addTestSuite(AnrParserTest.class);
-        addTestSuite(BugreportParserTest.class);
-        addTestSuite(CompactMemInfoParserTest.class);
-        addTestSuite(DmesgParserTest.class);
-        addTestSuite(EventsLogParserTest.class);
-        addTestSuite(DvmLockSampleParserTest.class);
-        addTestSuite(InterruptParserTest.class);
-        addTestSuite(JavaCrashParserTest.class);
-        addTestSuite(KernelLogParserTest.class);
-        addTestSuite(LogcatParserTest.class);
-        addTestSuite(MemInfoParserTest.class);
-        addTestSuite(MonkeyLogParserTest.class);
-        addTestSuite(NativeCrashParserTest.class);
-        addTestSuite(ProcessUsageParserTest.class);
-        addTestSuite(ProcrankParserTest.class);
-        addTestSuite(SystemPropsParserTest.class);
-        addTestSuite(TopParserTest.class);
-        addTestSuite(TracesParserTest.class);
-        addTestSuite(WakelockParserTest.class);
-
-        // util
-        addTestSuite(ArrayUtilTest.class);
-        addTestSuite(LogPatternUtilTest.class);
-        addTestSuite(LogTailUtilTest.class);
-        addTestSuite(RegexTrieTest.class);
-
-        // util.config
-        addTestSuite(ArgsOptionParserTest.class);
-        addTestSuite(OptionSetterTest.class);
-        addTestSuite(OptionUpdateRuleTest.class);
-    }
-
-    public static Test suite() {
-        return new UnitTests();
-    }
-}
+    // util.config
+    ArgsOptionParserTest.class,
+    OptionSetterTest.class,
+    OptionUpdateRuleTest.class,
+})
+public class UnitTests {
+    // empty of purpose
+}
\ No newline at end of file
diff --git a/tests/src/com/android/loganalysis/item/DvmLockSampleItemTest.java b/tests/src/com/android/loganalysis/item/DvmLockSampleItemTest.java
index bf77c765199779873c54c487800ebd562c5cf0e1..5d6054ecfad4088d50339dbf886258e05519663d 100644
--- a/tests/src/com/android/loganalysis/item/DvmLockSampleItemTest.java
+++ b/tests/src/com/android/loganalysis/item/DvmLockSampleItemTest.java
@@ -17,9 +17,6 @@ package com.android.loganalysis.item;
 
 import junit.framework.TestCase;
 
-import com.android.loganalysis.item.DvmLockSampleItem;
-import com.android.loganalysis.parser.DvmLockSampleParser;
-
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -53,7 +50,7 @@ public class DvmLockSampleItemTest extends TestCase {
         assertEquals(75, output.get(DvmLockSampleItem.WAIT_TIME));
         assertEquals("AccessibilityCache.java", output.get(DvmLockSampleItem.WAITING_SOURCE_FILE));
         assertEquals(256, output.get(DvmLockSampleItem.WAITING_SOURCE_LINE));
-        assertEquals("AccessibilityCache.java", output.get(DvmLockSampleItem.OWNER_FILE_NAME));
+        assertEquals("-", output.get(DvmLockSampleItem.OWNER_FILE_NAME));
         assertEquals(96, output.get(DvmLockSampleItem.OWNER_ACQUIRE_SOURCE_LINE));
         assertEquals(15, output.get(DvmLockSampleItem.SAMPLE_PERCENTAGE));
     }
diff --git a/tests/src/com/android/loganalysis/item/LocationDumpsItemTest.java b/tests/src/com/android/loganalysis/item/LocationDumpsItemTest.java
index c1af8a07c956ae8042b2901a09c390303ae7ab1e..a96bc0d24dc21d479a31dc93c905440e0079da1e 100644
--- a/tests/src/com/android/loganalysis/item/LocationDumpsItemTest.java
+++ b/tests/src/com/android/loganalysis/item/LocationDumpsItemTest.java
@@ -61,7 +61,7 @@ public class LocationDumpsItemTest extends TestCase {
     }
 
     /**
-     * Test that {@link LocationDumpsItem#getLocationDumps()} returns correctly.
+     * Test that {@link LocationDumpsItem#getLocationClients()} returns correctly.
      */
     public void testGetLocationDumps() {
         LocationDumpsItem item = new LocationDumpsItem();
diff --git a/tests/src/com/android/loganalysis/parser/ActivityServiceParserTest.java b/tests/src/com/android/loganalysis/parser/ActivityServiceParserTest.java
index c074f14de7e0687ac90b015b83fb4350aa18fd8a..57aff9a07ecbe5c1682b475e269061ab706ceef1 100644
--- a/tests/src/com/android/loganalysis/parser/ActivityServiceParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/ActivityServiceParserTest.java
@@ -16,7 +16,6 @@
 package com.android.loganalysis.parser;
 
 import com.android.loganalysis.item.ActivityServiceItem;
-import com.android.loganalysis.item.DumpsysItem;
 
 import junit.framework.TestCase;
 
diff --git a/tests/src/com/android/loganalysis/parser/BatteryDischargeStatsInfoParserTest.java b/tests/src/com/android/loganalysis/parser/BatteryDischargeStatsInfoParserTest.java
index 983e3aaebdbc87240abfe9b5c35125fa16dd1027..691810cd6ef6b1c5609da043a157e84062ce7e67 100644
--- a/tests/src/com/android/loganalysis/parser/BatteryDischargeStatsInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/BatteryDischargeStatsInfoParserTest.java
@@ -20,8 +20,6 @@ import com.android.loganalysis.item.BatteryDischargeStatsInfoItem;
 
 import junit.framework.TestCase;
 
-import org.json.JSONException;
-
 import java.util.Arrays;
 import java.util.List;
 
@@ -145,7 +143,7 @@ public class BatteryDischargeStatsInfoParserTest extends TestCase {
     /**
      * Test that input with only a few discharge stats.
      */
-    public void testBatteryDischargeStatsWithTop5Percentages() throws JSONException {
+    public void testBatteryDischargeStatsWithTop5Percentages() {
         List<String> input = Arrays.asList(
             "  #95: +3m9s77ms to 95 (screen-on, power-save-off, device-idle-off)",
             "  #96: +7m0s308ms to 96 (screen-on, power-save-off, device-idle-off)",
diff --git a/tests/src/com/android/loganalysis/parser/CpuInfoParserTest.java b/tests/src/com/android/loganalysis/parser/CpuInfoParserTest.java
index b400db5594df66bc2e6a450773c1c8daecb5a2a5..196f6a2921777c47c3ab3fc0173e8dd6c340ebca 100644
--- a/tests/src/com/android/loganalysis/parser/CpuInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/CpuInfoParserTest.java
@@ -19,10 +19,6 @@ import com.android.loganalysis.item.CpuInfoItem;
 
 import junit.framework.TestCase;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
 import java.util.Arrays;
 import java.util.List;
 
diff --git a/tests/src/com/android/loganalysis/parser/EventsLogParserTest.java b/tests/src/com/android/loganalysis/parser/EventsLogParserTest.java
index 735ae8a51f40afec81657ef216f9392c8fc47f3a..a3dc2831fb21a210347cda848c294285cac5fc17 100644
--- a/tests/src/com/android/loganalysis/parser/EventsLogParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/EventsLogParserTest.java
@@ -19,6 +19,8 @@ package com.android.loganalysis.parser;
 import com.android.loganalysis.item.LatencyItem;
 import com.android.loganalysis.item.TransitionDelayItem;
 
+import junit.framework.TestCase;
+
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -29,8 +31,6 @@ import java.io.InputStreamReader;
 import java.util.Arrays;
 import java.util.List;
 
-import junit.framework.TestCase;
-
 /**
  * Unit tests for {@link EventsLogParser}.
  */
@@ -38,6 +38,11 @@ public class EventsLogParserTest extends TestCase {
 
     private File mTempFile = null;
 
+    @Override
+    protected void tearDown() throws Exception {
+        mTempFile.delete();
+    }
+
     /**
      * Test for empty events logs passed to the transition delay parser
      */
diff --git a/tests/src/com/android/loganalysis/parser/GfxInfoParserTest.java b/tests/src/com/android/loganalysis/parser/GfxInfoParserTest.java
index 1ba7dce02f3f6f6419602eddba2216449629ce53..b424472657a9f3e2dd53abb6050d57c443c8a848 100644
--- a/tests/src/com/android/loganalysis/parser/GfxInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/GfxInfoParserTest.java
@@ -19,10 +19,6 @@ import com.android.loganalysis.item.GfxInfoItem;
 
 import junit.framework.TestCase;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
 import java.util.Arrays;
 import java.util.List;
 
diff --git a/tests/src/com/android/loganalysis/parser/LogcatParserTest.java b/tests/src/com/android/loganalysis/parser/LogcatParserTest.java
index b8170f7287d09413b00e5ebbd282ef6fde93a455..7adeed640fd597f0aecd06341bf23dfa6cf70f65 100644
--- a/tests/src/com/android/loganalysis/parser/LogcatParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/LogcatParserTest.java
@@ -106,7 +106,7 @@ public class LogcatParserTest extends TestCase {
                 logcat.getJavaCrashes().get(0).getEventTime());
     }
 
-    public void testParse_test_exception() throws ParseException {
+    public void testParse_test_exception() {
         List<String> lines = Arrays.asList(
                 "11-25 19:26:53.581  5832  7008 I TestRunner: ----- begin exception -----",
                 "11-25 19:26:53.589  5832  7008 I TestRunner: ",
@@ -145,7 +145,7 @@ public class LogcatParserTest extends TestCase {
         assertEquals(LogcatParser.JAVA_CRASH, logcat.getJavaCrashes().get(0).getCategory());
     }
 
-    public void testParse_test_exception_with_exras() throws ParseException {
+    public void testParse_test_exception_with_exras() {
         List<String> lines = Arrays.asList(
                 "12-06 17:19:18.746  6598  7960 I TestRunner: failed: testYouTube(com.android.test.uiautomator.aupt.YouTubeTest)",
                 "12-06 17:19:18.746  6598  7960 I TestRunner: ----- begin exception -----",
diff --git a/tests/src/com/android/loganalysis/parser/QtaguidParserTest.java b/tests/src/com/android/loganalysis/parser/QtaguidParserTest.java
index 57d22c77679848e639e2a571accb3f2841db5489..f9442a6f0b2fa62a7eef6402a6f9cf1a5983e9ed 100644
--- a/tests/src/com/android/loganalysis/parser/QtaguidParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/QtaguidParserTest.java
@@ -19,10 +19,6 @@ import com.android.loganalysis.item.QtaguidItem;
 
 import junit.framework.TestCase;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
 import java.util.Arrays;
 import java.util.List;
 
diff --git a/tests/src/com/android/loganalysis/util/ArrayUtilTest.java b/tests/src/com/android/loganalysis/util/ArrayUtilTest.java
index 9c682935aeaa8303180737be113a63403dcfdf74..98d85e643d256dd3f282bbe345d48696340dd199 100644
--- a/tests/src/com/android/loganalysis/util/ArrayUtilTest.java
+++ b/tests/src/com/android/loganalysis/util/ArrayUtilTest.java
@@ -26,7 +26,7 @@ import java.util.List;
 public class ArrayUtilTest extends TestCase {
 
     /**
-     * Simple test for {@link ArrayUtil#buildArray(String[]...)}
+     * Simple test for {@link ArrayUtil#buildArray(String[][])}
      */
     public void testBuildArray_arrays() {
         String[] newArray = ArrayUtil.buildArray(new String[] {"1", "2"}, new String[] {"3"},
diff --git a/tests/src/com/android/loganalysis/util/config/OptionSetterTest.java b/tests/src/com/android/loganalysis/util/config/OptionSetterTest.java
index ecac1eefafa077741fabf016183cf49616fd6a8e..308e895d2f0d103cc212ad502c5ab546d00540ef 100644
--- a/tests/src/com/android/loganalysis/util/config/OptionSetterTest.java
+++ b/tests/src/com/android/loganalysis/util/config/OptionSetterTest.java
@@ -301,7 +301,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test that multiple options with same name must have the same type.
      */
-    public void testOptionSetter_sharedOptionsDiffType() throws ConfigurationException {
+    public void testOptionSetter_sharedOptionsDiffType() {
         try {
             new OptionSetter(new AllTypesOptionSource(), new SharedOptionWrongTypeSource());
             fail("ConfigurationException not thrown");
@@ -375,7 +375,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test that options with {@link OptionSetter#NAMESPACE_SEPARATOR} are rejected
      */
-    public void testOptionSetter_badOptionName() throws ConfigurationException {
+    public void testOptionSetter_badOptionName() {
         try {
             new OptionSetter(new BadOptionNameSource());
             fail("ConfigurationException not thrown");
@@ -474,7 +474,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a Collection.
      */
-    public void testSetOptionValue_collection() throws ConfigurationException, IOException {
+    public void testSetOptionValue_collection() throws ConfigurationException {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         final String expectedValue = "stringvalue";
         assertSetOptionValue(optionSource, "string_collection", expectedValue);
@@ -485,7 +485,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a Map.
      */
-    public void testSetOptionValue_map() throws ConfigurationException, IOException {
+    public void testSetOptionValue_map() throws ConfigurationException {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         final String expectedKey = "stringkey";
         final String expectedValue = "stringvalue";
@@ -512,7 +512,7 @@ public class OptionSetterTest extends TestCase {
      * Test {@link OptionSetter#setOptionValue(String, String)} for a boolean for a non-boolean
      * value.
      */
-    public void testSetOptionValue_booleanInvalid() throws ConfigurationException {
+    public void testSetOptionValue_booleanInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "boolean", "blah");
     }
@@ -538,7 +538,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a byte for an invalid value.
      */
-    public void testSetOptionValue_byteInvalid() throws ConfigurationException {
+    public void testSetOptionValue_byteInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "byte", "blah");
     }
@@ -573,7 +573,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a short for an invalid value.
      */
-    public void testSetOptionValue_shortInvalid() throws ConfigurationException {
+    public void testSetOptionValue_shortInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "short", "blah");
     }
@@ -599,7 +599,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a int for an invalid value.
      */
-    public void testSetOptionValue_intInvalid() throws ConfigurationException {
+    public void testSetOptionValue_intInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "int", "blah");
     }
@@ -625,7 +625,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a long for an invalid value.
      */
-    public void testSetOptionValue_longInvalid() throws ConfigurationException {
+    public void testSetOptionValue_longInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "long", "blah");
     }
@@ -651,7 +651,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a float for an invalid value.
      */
-    public void testSetOptionValue_floatInvalid() throws ConfigurationException {
+    public void testSetOptionValue_floatInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "float", "blah");
     }
@@ -677,7 +677,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for a double for an invalid value.
      */
-    public void testSetOptionValue_doubleInvalid() throws ConfigurationException {
+    public void testSetOptionValue_doubleInvalid() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         assertSetOptionValueInvalid(optionSource, "double", "blah");
     }
@@ -768,7 +768,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter#setOptionValue(String, String)} for an Enum.
      */
-    public void testSetOptionValue_enumBadValue() throws ConfigurationException {
+    public void testSetOptionValue_enumBadValue() {
         AllTypesOptionSource optionSource = new AllTypesOptionSource();
         try {
             assertSetOptionValue(optionSource, "enum", "noexist");
@@ -793,7 +793,7 @@ public class OptionSetterTest extends TestCase {
     /**
      * Test {@link OptionSetter} for a final field
      */
-    public void testOptionSetter_finalField() throws ConfigurationException {
+    public void testOptionSetter_finalField() {
         FinalOption optionSource = new FinalOption();
         try {
             new OptionSetter(optionSource);