This is an automated email from the ASF dual-hosted git repository.

pdallig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 22ae6cdcd1 [ZEPPELIN-5907][JUnit 5 Migration] Module 
zeppelin-interpreter (#4595)
22ae6cdcd1 is described below

commit 22ae6cdcd1f526b66808c2b994b53f808f390cfe
Author: Philipp Dallig <philipp.dal...@gmail.com>
AuthorDate: Wed May 10 08:11:29 2023 +0200

    [ZEPPELIN-5907][JUnit 5 Migration] Module zeppelin-interpreter (#4595)
    
    * Migrate zeppelin-interpreter to JUnit5
    
    * Stabilize the tests
---
 zeppelin-interpreter/pom.xml                       |  6 --
 .../InterpreterOutputChangeWatcher.java            |  7 +-
 .../zeppelin/cluster/ClusterMultiNodeTest.java     | 20 ++---
 .../zeppelin/cluster/ClusterSingleNodeTest.java    | 27 +++----
 .../zeppelin/conf/ZeppelinConfigurationTest.java   | 25 +++---
 .../java/org/apache/zeppelin/dep/BooterTest.java   | 31 ++++----
 .../zeppelin/dep/DependencyResolverTest.java       | 57 +++++++-------
 .../display/AngularObjectRegistryTest.java         | 15 ++--
 .../apache/zeppelin/display/AngularObjectTest.java | 16 ++--
 .../java/org/apache/zeppelin/display/GUITest.java  | 42 +++++-----
 .../org/apache/zeppelin/display/InputTest.java     | 17 ++--
 .../zeppelin/helium/ApplicationLoaderTest.java     | 26 +++----
 .../apache/zeppelin/helium/HeliumPackageTest.java  | 22 +++---
 .../interpreter/InterpreterContextTest.java        | 10 +--
 .../interpreter/InterpreterHookRegistryTest.java   | 26 ++++---
 .../InterpreterOutputChangeWatcherTest.java        | 63 ++++++---------
 .../interpreter/InterpreterOutputTest.java         | 41 +++++-----
 .../interpreter/InterpreterResultTest.java         | 64 +++++++--------
 .../zeppelin/interpreter/InterpreterTest.java      | 12 +--
 .../interpreter/LazyOpenInterpreterTest.java       | 16 ++--
 .../SingleRowInterpreterResultTest.java            | 10 +--
 .../zeppelin/interpreter/ZeppCtxtVariableTest.java | 91 ++++++++++------------
 .../zeppelin/interpreter/ZeppelinContextTest.java  | 15 ++--
 .../launcher/InterpreterLauncherTest.java          |  4 +-
 .../remote/RemoteInterpreterServerTest.java        | 38 +++++----
 .../remote/RemoteInterpreterUtilsTest.java         |  8 +-
 .../interpreter/util/ByteBufferUtilTest.java       |  9 ++-
 .../zeppelin/interpreter/util/SqlSplitterTest.java | 24 +++---
 .../zeppelin/resource/LocalResourcePoolTest.java   | 14 ++--
 .../apache/zeppelin/resource/ResourceSetTest.java  | 10 +--
 .../org/apache/zeppelin/resource/ResourceTest.java | 37 +++++----
 .../zeppelin/scheduler/FIFOSchedulerTest.java      | 24 +++---
 .../org/apache/zeppelin/scheduler/JobTest.java     | 34 ++++----
 .../zeppelin/scheduler/ParallelSchedulerTest.java  | 13 ++--
 .../tabledata/InterpreterResultTableDataTest.java  | 11 +--
 .../zeppelin/tabledata/TableDataProxyTest.java     | 18 ++---
 .../zeppelin/tabledata/TableDataUtilsTest.java     | 12 +--
 37 files changed, 458 insertions(+), 457 deletions(-)

diff --git a/zeppelin-interpreter/pom.xml b/zeppelin-interpreter/pom.xml
index c5ce5360ab..34bfd17e9d 100644
--- a/zeppelin-interpreter/pom.xml
+++ b/zeppelin-interpreter/pom.xml
@@ -207,12 +207,6 @@
       <scope>test</scope>
     </dependency>
 
-    <dependency>
-      <groupId>org.junit.vintage</groupId>
-      <artifactId>junit-vintage-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
-
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
diff --git 
a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcher.java
 
b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcher.java
index 1cb9c23ee6..14eb7414b4 100644
--- 
a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcher.java
+++ 
b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcher.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
  * Watch the change for the development mode support
  */
 public class InterpreterOutputChangeWatcher extends Thread {
-  Logger logger = 
LoggerFactory.getLogger(InterpreterOutputChangeWatcher.class);
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(InterpreterOutputChangeWatcher.class);
 
   private WatchService watcher;
   private final List<File> watchFiles = new LinkedList<>();
@@ -68,7 +68,7 @@ public class InterpreterOutputChangeWatcher extends Thread {
     }
 
     Path dir = FileSystems.getDefault().getPath(dirString);
-    logger.info("watch " + dir);
+    LOGGER.info("watch {}", dir);
     WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, 
ENTRY_MODIFY);
     synchronized (watchKeys) {
       watchKeys.put(key, new File(dirString));
@@ -93,6 +93,7 @@ public class InterpreterOutputChangeWatcher extends Thread {
     watcher.close();
   }
 
+  @Override
   public void run() {
     while (!stop) {
       WatchKey key = null;
@@ -122,7 +123,7 @@ public class InterpreterOutputChangeWatcher extends Thread {
               } else {
                 changedFile = new File(watchKeys.get(key), 
filename.toString());
               }
-              logger.info("File change detected " + 
changedFile.getAbsolutePath());
+              LOGGER.info("File change detected {}", 
changedFile.getAbsolutePath());
               if (listener != null) {
                 listener.fileChanged(changedFile);
               }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterMultiNodeTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterMultiNodeTest.java
index f5c79421a5..8f4108e408 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterMultiNodeTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterMultiNodeTest.java
@@ -19,21 +19,21 @@ package org.apache.zeppelin.cluster;
 import org.apache.zeppelin.cluster.meta.ClusterMetaType;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.interpreter.remote.RemoteInterpreterUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.IOException;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 public class ClusterMultiNodeTest {
   private static Logger LOGGER = 
LoggerFactory.getLogger(ClusterMultiNodeTest.class);
 
@@ -43,8 +43,8 @@ public class ClusterMultiNodeTest {
 
   static final String metaKey = "ClusterMultiNodeTestKey";
 
-  @BeforeClass
-  public static void startCluster() throws IOException, InterruptedException {
+  @BeforeAll
+  static void startCluster() throws IOException, InterruptedException {
     LOGGER.info("startCluster >>>");
 
     String clusterAddrList = "";
@@ -109,8 +109,8 @@ public class ClusterMultiNodeTest {
     getClusterServerMeta();
   }
 
-  @AfterClass
-  public static void stopCluster() {
+  @AfterAll
+  static void stopCluster() {
     LOGGER.info("stopCluster >>>");
     if (null != clusterClient) {
       clusterClient.shutdown();
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterSingleNodeTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterSingleNodeTest.java
index 26d7bf9eb6..e1cc4a1764 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterSingleNodeTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/cluster/ClusterSingleNodeTest.java
@@ -20,21 +20,22 @@ import org.apache.zeppelin.cluster.meta.ClusterMeta;
 import org.apache.zeppelin.cluster.meta.ClusterMetaType;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.interpreter.remote.RemoteInterpreterUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
-public class ClusterSingleNodeTest {
+class ClusterSingleNodeTest {
   private static Logger LOGGER = 
LoggerFactory.getLogger(ClusterSingleNodeTest.class);
   private static ZeppelinConfiguration zconf;
 
@@ -45,8 +46,8 @@ public class ClusterSingleNodeTest {
   static int zServerPort;
   static final String metaKey = "ClusterSingleNodeTestKey";
 
-  @BeforeClass
-  public static void startCluster() throws IOException, InterruptedException {
+  @BeforeAll
+  static void startCluster() throws IOException, InterruptedException {
     LOGGER.info("startCluster >>>");
 
     zconf = ZeppelinConfiguration.create("zeppelin-site-test.xml");
@@ -83,8 +84,8 @@ public class ClusterSingleNodeTest {
     LOGGER.info("startCluster <<<");
   }
 
-  @AfterClass
-  public static void stopCluster() {
+  @AfterAll
+  static void stopCluster() {
     if (null != clusterClient) {
       clusterClient.shutdown();
     }
@@ -96,7 +97,7 @@ public class ClusterSingleNodeTest {
   }
 
   @Test
-  public void getServerMeta() {
+  void getServerMeta() {
     LOGGER.info("getServerMeta >>>");
 
     // Get metadata for all services
@@ -118,7 +119,7 @@ public class ClusterSingleNodeTest {
   }
 
   @Test
-  public void putIntpProcessMeta() {
+  void putIntpProcessMeta() {
     // mock IntpProcess Meta
     Map<String, Object> meta = new HashMap<>();
     meta.put(ClusterMeta.SERVER_HOST, zServerHost);
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/conf/ZeppelinConfigurationTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/conf/ZeppelinConfigurationTest.java
index c72dc3070a..55c68d48a2 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/conf/ZeppelinConfigurationTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/conf/ZeppelinConfigurationTest.java
@@ -16,29 +16,34 @@
  */
 package org.apache.zeppelin.conf;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.time.format.DateTimeParseException;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
 
-public class ZeppelinConfigurationTest {
+class ZeppelinConfigurationTest {
 
   @Test
-  public void testTimeUnitToMill() {
+  void testTimeUnitToMill() {
     assertEquals(10L, ZeppelinConfiguration.timeUnitToMill("10ms"));
     assertEquals(2000L, ZeppelinConfiguration.timeUnitToMill("2s"));
     assertEquals(60000L, ZeppelinConfiguration.timeUnitToMill("1m"));
     assertEquals(3600000L, ZeppelinConfiguration.timeUnitToMill("1h"));
   }
 
-  @Test(expected = DateTimeParseException.class)
-  public void testTimeUnitToMill_WithoutUnit_1() {
-    assertEquals(DateTimeParseException.class, 
ZeppelinConfiguration.timeUnitToMill("60000"));
+  @Test
+  void testTimeUnitToMill_WithoutUnit_1() {
+    assertThrows(DateTimeParseException.class, () -> {
+      ZeppelinConfiguration.timeUnitToMill("60000");
+    });
   }
 
-  @Test(expected = DateTimeParseException.class)
-  public void testTimeUnitToMill_WithoutUnit_2() {
-    assertEquals(DateTimeParseException.class, 
ZeppelinConfiguration.timeUnitToMill("0"));
+  @Test
+  void testTimeUnitToMill_WithoutUnit_2() {
+    assertThrows(DateTimeParseException.class, () -> {
+      ZeppelinConfiguration.timeUnitToMill("0");
+    });
   }
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/BooterTest.java 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/BooterTest.java
index 21a8d1a3da..1a9e98e16e 100644
--- a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/BooterTest.java
+++ b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/BooterTest.java
@@ -19,42 +19,43 @@ package org.apache.zeppelin.dep;
 
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.nio.file.Paths;
 import java.util.List;
 
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 
-public class BooterTest {
+class BooterTest {
 
   @Test
-  public void should_return_absolute_path() {
+  void should_return_absolute_path() {
     String resolvedPath = Booter.resolveLocalRepoPath("path");
     assertTrue(Paths.get(resolvedPath).isAbsolute());
   }
 
   @Test
-  public void should_not_change_absolute_path() {
+  void should_not_change_absolute_path() {
     String absolutePath
         = Paths.get("first", "second").toAbsolutePath().toString();
     String resolvedPath = Booter.resolveLocalRepoPath(absolutePath);
-
-    assertThat(resolvedPath, equalTo(absolutePath));
+    assertEquals(absolutePath, resolvedPath);
   }
 
-  @Test(expected = NullPointerException.class)
-  public void should_throw_exception_for_null() {
-    Booter.resolveLocalRepoPath(null);
+  @Test
+  void should_throw_exception_for_null() {
+    assertThrows(NullPointerException.class, () -> {
+      Booter.resolveLocalRepoPath(null);
+    });
+
   }
 
   @Test
-  public void getInterpreterMvnRepoPathTest() {
+  void getInterpreterMvnRepoPathTest() {
     ZeppelinConfiguration.reset();
     ZeppelinConfiguration.create("zeppelin-site-test.xml");
     List<RemoteRepository> remoteRepositories = 
Booter.newCentralRepositorys(null);
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/DependencyResolverTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/DependencyResolverTest.java
index ceeecd9fe7..c43ce8e410 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/DependencyResolverTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/dep/DependencyResolverTest.java
@@ -18,30 +18,28 @@
 package org.apache.zeppelin.dep;
 
 import org.apache.commons.io.FileUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.eclipse.aether.RepositoryException;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.Collections;
 
-import static org.junit.Assert.assertEquals;
 
-public class DependencyResolverTest {
+class DependencyResolverTest {
   private static DependencyResolver resolver;
   private static String testPath;
   private static File testCopyPath;
   private static File tmpDir;
 
-  @Rule
-  public ExpectedException expectedException = ExpectedException.none();
 
-  @BeforeClass
-  public static void setUp() throws Exception {
+  @BeforeAll
+  static void setUp() throws Exception {
     tmpDir = new File(System.getProperty("java.io.tmpdir") + "/ZeppelinLTest_" 
+
         System.currentTimeMillis());
     testPath = tmpDir.getAbsolutePath() + "/test-repo";
@@ -49,23 +47,21 @@ public class DependencyResolverTest {
     resolver = new DependencyResolver(testPath);
   }
 
-  @AfterClass
-  public static void tearDown() throws Exception {
+  @AfterAll
+  static void tearDown() throws Exception {
     FileUtils.deleteDirectory(tmpDir);
   }
 
-  @Rule
-  public final ExpectedException exception = ExpectedException.none();
 
   @Test
-  public void testAddRepo() {
+  void testAddRepo() {
     int reposCnt = resolver.getRepos().size();
     resolver.addRepo("securecentral", "https://repo1.maven.org/maven2";, false);
     assertEquals(reposCnt + 1, resolver.getRepos().size());
   }
 
   @Test
-  public void testDelRepo() {
+  void testDelRepo() {
     resolver.addRepo("securecentral", "https://repo1.maven.org/maven2";, false);
     int reposCnt = resolver.getRepos().size();
     resolver.delRepo("securecentral");
@@ -74,23 +70,23 @@ public class DependencyResolverTest {
   }
 
   @Test
-  public void testLoad() throws Exception {
+  void testLoad() throws Exception {
     // basic load
     resolver.load("com.databricks:spark-csv_2.10:1.3.0", testCopyPath);
-    assertEquals(testCopyPath.list().length, 4);
+    assertEquals(4, testCopyPath.list().length);
     FileUtils.cleanDirectory(testCopyPath);
 
     // load with exclusions parameter
     resolver.load("com.databricks:spark-csv_2.10:1.3.0",
         Collections.singletonList("org.scala-lang:scala-library"), 
testCopyPath);
-    assertEquals(testCopyPath.list().length, 3);
+    assertEquals(3, testCopyPath.list().length);
     FileUtils.cleanDirectory(testCopyPath);
 
     // load from added http repository
     resolver.addRepo("httpmvn",
         "http://insecure.repo1.maven.org/maven2/";, false);
     resolver.load("com.databricks:spark-csv_2.10:1.3.0", testCopyPath);
-    assertEquals(testCopyPath.list().length, 4);
+    assertEquals(4, testCopyPath.list().length);
     FileUtils.cleanDirectory(testCopyPath);
     resolver.delRepo("httpmvn");
 
@@ -98,20 +94,21 @@ public class DependencyResolverTest {
     resolver.addRepo("sonatype",
         
"https://oss.sonatype.org/content/repositories/ksoap2-android-releases/";, 
false);
     resolver.load("com.google.code.ksoap2-android:ksoap2-jsoup:3.6.3", 
testCopyPath);
-    assertEquals(testCopyPath.list().length, 10);
+    assertEquals(10, testCopyPath.list().length);
 
     // load invalid artifact
-    resolver.delRepo("sonatype");
-    exception.expect(RepositoryException.class);
-    resolver.load("com.agimatec:agimatec-validation:0.12.0", testCopyPath);
+    assertThrows(RepositoryException.class, () -> {
+      resolver.delRepo("sonatype");
+      resolver.load("com.agimatec:agimatec-validation:0.12.0", testCopyPath);
+    });
   }
 
   @Test
-  public void should_throw_exception_if_dependency_not_found() throws 
Exception {
-    expectedException.expectMessage("Source 'one.two:1.0' does not exist");
-    expectedException.expect(FileNotFoundException.class);
-
-    resolver.load("one.two:1.0", testCopyPath);
+  void should_throw_exception_if_dependency_not_found() throws Exception {
+    FileNotFoundException exception = 
assertThrows(FileNotFoundException.class, () -> {
+      resolver.load("one.two:1.0", testCopyPath);
+    });
+    assertEquals("Source 'one.two:1.0' does not exist", 
exception.getMessage());
   }
 
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectRegistryTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectRegistryTest.java
index 988e6eaa8e..a271117d09 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectRegistryTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectRegistryTest.java
@@ -18,17 +18,18 @@
 package org.apache.zeppelin.display;
 
 import org.apache.thrift.TException;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 
-public class AngularObjectRegistryTest {
+class AngularObjectRegistryTest {
 
   @Test
-  public void testBasic() throws TException {
+  void testBasic() throws TException {
     final AtomicInteger onAdd = new AtomicInteger(0);
     final AtomicInteger onUpdate = new AtomicInteger(0);
     final AtomicInteger onRemove = new AtomicInteger(0);
@@ -77,7 +78,7 @@ public class AngularObjectRegistryTest {
   }
 
   @Test
-  public void testGetDependOnScope() throws TException {
+  void testGetDependOnScope() throws TException {
     AngularObjectRegistry registry = new AngularObjectRegistry("intpId", null);
     AngularObject ao1 = registry.add("name1", "o1", "noteId1", "paragraphId1");
     AngularObject ao2 = registry.add("name2", "o2", "noteId1", "paragraphId1");
@@ -96,7 +97,7 @@ public class AngularObjectRegistryTest {
   }
 
   @Test
-  public void testGetAllDependOnScope() throws TException {
+  void testGetAllDependOnScope() throws TException {
     AngularObjectRegistry registry = new AngularObjectRegistry("intpId", null);
     AngularObject ao1 = registry.add("name1", "o", "noteId1", "paragraphId1");
     AngularObject ao2 = registry.add("name2", "o", "noteId1", "paragraphId1");
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectTest.java
index b30439a400..4e86d49526 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/AngularObjectTest.java
@@ -19,17 +19,17 @@ package org.apache.zeppelin.display;
 
 import org.apache.thrift.TException;
 import org.apache.zeppelin.interpreter.InterpreterContext;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import java.util.concurrent.atomic.AtomicInteger;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotSame;
+import java.util.concurrent.atomic.AtomicInteger;
 
-public class AngularObjectTest {
+class AngularObjectTest {
 
   @Test
-  public void testEquals() {
+  void testEquals() {
     assertEquals(
         new AngularObject("name", "value", "note1", null, null),
         new AngularObject("name", "value", "note1", null, null)
@@ -79,7 +79,7 @@ public class AngularObjectTest {
   }
 
   @Test
-  public void testListener() throws TException {
+  void testListener() throws TException {
     final AtomicInteger updated = new AtomicInteger(0);
     AngularObject ao = new AngularObject("name", "value", "note1", null,
         new AngularObjectListener() {
@@ -104,7 +104,7 @@ public class AngularObjectTest {
   }
 
   @Test
-  public void testWatcher() throws InterruptedException, TException {
+  void testWatcher() throws InterruptedException, TException {
     final AtomicInteger updated = new AtomicInteger(0);
     final AtomicInteger onWatch = new AtomicInteger(0);
     AngularObject ao = new AngularObject("name", "value", "note1", null,
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/GUITest.java 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/GUITest.java
index 363afe1adb..e4e67e85b0 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/GUITest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/GUITest.java
@@ -21,17 +21,19 @@ import org.apache.zeppelin.display.ui.CheckBox;
 import org.apache.zeppelin.display.ui.OptionInput.ParamOption;
 import org.apache.zeppelin.display.ui.Select;
 import org.apache.zeppelin.display.ui.TextBox;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 
-public class GUITest {
+class GUITest {
 
   private ParamOption[] options = new ParamOption[]{
       new ParamOption("1", "value_1"),
@@ -40,14 +42,14 @@ public class GUITest {
 
   private List<Object> checkedItems;
 
-  @Before
-  public void setUp() {
+  @BeforeEach
+  void setUp() {
     checkedItems = new ArrayList<>();
     checkedItems.add("1");
   }
 
   @Test
-  public void testSelect() {
+  void testSelect() {
     GUI gui = new GUI();
     Object selected = gui.select("list_1", options, null);
     // use the first one as the default value
@@ -63,11 +65,11 @@ public class GUITest {
   }
 
   @Test
-  public void testGson() {
+  void testGson() {
     GUI gui = new GUI();
     gui.textbox("textbox_1", "default_text_1");
     gui.select("select_1", options, "1");
-    List<Object> list = new ArrayList();
+    List<Object> list = new ArrayList<>();
     list.add("1");
     gui.checkbox("checkbox_1", options, list);
 
@@ -75,13 +77,11 @@ public class GUITest {
     System.out.println(json);
     GUI gui2 = GUI.fromJson(json);
     assertEquals(gui2.toJson(), json);
-    assertEquals(gui2.forms, gui2.forms);
-    assertEquals(gui2.params, gui2.params);
   }
 
   // Case 1. Old input forms are created in backend, in this case type is 
always set
   @Test
-  public void testOldGson_1() throws IOException {
+  void testOldGson_1() throws IOException {
 
     GUI gui = new GUI();
     gui.forms.put("textbox_1", new OldInput.OldTextBox("textbox_1", 
"default_text_1"));
@@ -94,19 +94,19 @@ public class GUITest {
 
     // convert to new input forms
     GUI gui2 = GUI.fromJson(json);
-    assertTrue(3 == gui2.forms.size());
+    assertEquals(3, gui2.forms.size());
     assertTrue(gui2.forms.get("textbox_1") instanceof TextBox);
     assertEquals("default_text_1", 
gui2.forms.get("textbox_1").getDefaultValue());
     assertTrue(gui2.forms.get("select_1") instanceof Select);
-    assertEquals(options, ((Select) gui2.forms.get("select_1")).getOptions());
+    assertArrayEquals(options, ((Select) 
gui2.forms.get("select_1")).getOptions());
     assertTrue(gui2.forms.get("checkbox_1") instanceof CheckBox);
-    assertEquals(options, ((CheckBox) 
gui2.forms.get("checkbox_1")).getOptions());
+    assertArrayEquals(options, ((CheckBox) 
gui2.forms.get("checkbox_1")).getOptions());
   }
 
   // Case 2. Old input forms are created in frontend, in this case type is 
only set for checkbox
   // Actually this is a bug due to method Input#getInputForm
   @Test
-  public void testOldGson_2() throws IOException {
+  void testOldGson_2() throws IOException {
 
     GUI gui = new GUI();
     gui.forms.put("textbox_1", new OldInput("textbox_1", "default_text_1"));
@@ -119,18 +119,18 @@ public class GUITest {
 
     // convert to new input forms
     GUI gui2 = GUI.fromJson(json);
-    assertTrue(3 == gui2.forms.size());
+    assertEquals(3, gui2.forms.size());
     assertTrue(gui2.forms.get("textbox_1") instanceof TextBox);
     assertEquals("default_text_1", 
gui2.forms.get("textbox_1").getDefaultValue());
     assertTrue(gui2.forms.get("select_1") instanceof Select);
-    assertEquals(options, ((Select) gui2.forms.get("select_1")).getOptions());
+    assertArrayEquals(options, ((Select) 
gui2.forms.get("select_1")).getOptions());
     assertTrue(gui2.forms.get("checkbox_1") instanceof CheckBox);
-    assertEquals(options, ((CheckBox) 
gui2.forms.get("checkbox_1")).getOptions());
+    assertArrayEquals(options, ((CheckBox) 
gui2.forms.get("checkbox_1")).getOptions());
   }
 
   // load old json file and will convert it into new forms of Input
   @Test
-  public void testOldGson_3() throws IOException {
+  void testOldGson_3() throws IOException {
     String oldJson = "{\n" +
         "        \"params\": {\n" +
         "          \"maxAge\": \"35\"\n" +
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java
index 18f9840cc9..8e7cdbf140 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/display/InputTest.java
@@ -22,20 +22,19 @@ import 
org.apache.zeppelin.display.ui.OptionInput.ParamOption;
 import org.apache.zeppelin.display.ui.Password;
 import org.apache.zeppelin.display.ui.Select;
 import org.apache.zeppelin.display.ui.TextBox;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-public class InputTest {
+class InputTest {
 
   @Test
-  public void testFormExtraction() {
+  void testFormExtraction() {
     // textbox form
     String script = "${input_form=}";
     Map<String, Input> forms = Input.extractSimpleQueryForm(script, false);
@@ -117,7 +116,7 @@ public class InputTest {
 
 
   @Test
-  public void testFormSubstitution() {
+  void testFormSubstitution() {
     // test form substitution without new forms
     String script = "INPUT=${input_form=}SELECTED=${select_form(Selection 
Form)=" +
         
",s_op1|s_op2|s_op3}\nCHECKED=${checkbox:checkbox_form=c_op1|c_op2,c_op1|c_op2|c_op3}";
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/ApplicationLoaderTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/ApplicationLoaderTest.java
index 0cbfc9019d..21d3d751b8 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/ApplicationLoaderTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/ApplicationLoaderTest.java
@@ -21,34 +21,34 @@ import org.apache.commons.io.FileUtils;
 import org.apache.zeppelin.dep.DependencyResolver;
 import org.apache.zeppelin.interpreter.InterpreterOutput;
 import org.apache.zeppelin.resource.LocalResourcePool;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-public class ApplicationLoaderTest {
+class ApplicationLoaderTest {
   private File tmpDir;
 
-  @Before
-  public void setUp() {
+  @BeforeEach
+  void setUp() {
     tmpDir = new File(System.getProperty("java.io.tmpdir") + "/ZeppelinLTest_" 
+
         System.currentTimeMillis());
     tmpDir.mkdirs();
   }
 
-  @After
-  public void tearDown() throws IOException {
+  @AfterEach
+  void tearDown() throws IOException {
     FileUtils.deleteDirectory(tmpDir);
   }
 
   @Test
-  public void loadUnloadApplication() throws Exception {
+  void loadUnloadApplication() throws Exception {
     // given
     LocalResourcePool resourcePool = new LocalResourcePool("pool1");
     DependencyResolver dep = new DependencyResolver(tmpDir.getAbsolutePath());
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/HeliumPackageTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/HeliumPackageTest.java
index e810742461..1d168d1448 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/HeliumPackageTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/helium/HeliumPackageTest.java
@@ -17,16 +17,16 @@
 
 package org.apache.zeppelin.helium;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
-public class HeliumPackageTest {
+class HeliumPackageTest {
 
   @Test
-  public void parseSpellPackageInfo() {
+  void parseSpellPackageInfo() {
     String examplePackage = "{\n" +
         "  \"type\" : \"SPELL\",\n" +
         "  \"name\" : \"echo-spell\",\n" +
@@ -41,12 +41,12 @@ public class HeliumPackageTest {
         "}";
 
     HeliumPackage p = HeliumPackage.fromJson(examplePackage);
-    assertEquals(p.getSpellInfo().getMagic(), "%echo");
-    assertEquals(p.getSpellInfo().getUsage(), "%echo <TEXT>");
+    assertEquals("%echo", p.getSpellInfo().getMagic());
+    assertEquals("%echo <TEXT>", p.getSpellInfo().getUsage());
   }
 
   @Test
-  public void parseConfig() {
+  void parseConfig() {
     String examplePackage = "{\n" +
         "  \"type\" : \"SPELL\",\n" +
         "  \"name\" : \"translator-spell\",\n" +
@@ -71,10 +71,8 @@ public class HeliumPackageTest {
     Map<String, Object> config = p.getConfig();
     Map<String, Object> accessToken = (Map<String, Object>) 
config.get("access-token");
 
-    assertEquals((String) accessToken.get("type"), "string");
-    assertEquals((String) accessToken.get("description"),
-        "access token for Google Translation API");
-    assertEquals((String) accessToken.get("defaultValue"),
-        "EXAMPLE-TOKEN");
+    assertEquals("string", accessToken.get("type"));
+    assertEquals("access token for Google Translation API", 
accessToken.get("description"));
+    assertEquals("EXAMPLE-TOKEN", accessToken.get("defaultValue"));
   }
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterContextTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterContextTest.java
index 62b4035ec0..ba10e20b1b 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterContextTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterContextTest.java
@@ -17,15 +17,15 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import org.junit.jupiter.api.Test;
 
-public class InterpreterContextTest {
+class InterpreterContextTest {
 
   @Test
-  public void testThreadLocal() {
+  void testThreadLocal() {
     InterpreterContext.remove();
     assertNull(InterpreterContext.get());
 
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterHookRegistryTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterHookRegistryTest.java
index 2381dc336b..94b9e9befe 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterHookRegistryTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterHookRegistryTest.java
@@ -17,19 +17,20 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
-
 import static 
org.apache.zeppelin.interpreter.InterpreterHookRegistry.HookType.POST_EXEC;
 import static 
org.apache.zeppelin.interpreter.InterpreterHookRegistry.HookType.POST_EXEC_DEV;
 import static 
org.apache.zeppelin.interpreter.InterpreterHookRegistry.HookType.PRE_EXEC;
 import static 
org.apache.zeppelin.interpreter.InterpreterHookRegistry.HookType.PRE_EXEC_DEV;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import org.junit.jupiter.api.Test;
 
-public class InterpreterHookRegistryTest {
+class InterpreterHookRegistryTest {
 
   @Test
-  public void testBasic() throws InvalidHookException {
+  void testBasic() throws InvalidHookException {
     final String GLOBAL_KEY = InterpreterHookRegistry.GLOBAL_KEY;
     final String noteId = "note";
     final String className = "class";
@@ -64,12 +65,15 @@ public class InterpreterHookRegistryTest {
     assertEquals(registry.get(GLOBAL_KEY, className, PRE_EXEC.getName()), 
preExecHook);
   }
 
-  @Test(expected = InvalidHookException.class)
-  public void testValidEventCode() throws InvalidHookException {
-    InterpreterHookRegistry registry = new InterpreterHookRegistry();
+  @Test
+  void testValidEventCode() {
+    assertThrows(InvalidHookException.class, () -> {
+      InterpreterHookRegistry registry = new InterpreterHookRegistry();
+      // Test that only valid event codes ("pre_exec", "post_exec") are 
accepted
+      registry.register("foo", "bar", "baz", "whatever");
+    });
+
 
-    // Test that only valid event codes ("pre_exec", "post_exec") are accepted
-    registry.register("foo", "bar", "baz", "whatever");
   }
 
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcherTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcherTest.java
index 2dbbbf8380..b4027f1db0 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcherTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputChangeWatcherTest.java
@@ -16,72 +16,58 @@
  */
 package org.apache.zeppelin.interpreter;
 
-import org.junit.After;
-import org.junit.Before;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import org.apache.commons.io.FileUtils;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-public class InterpreterOutputChangeWatcherTest implements 
InterpreterOutputChangeListener {
-  private File tmpDir;
+class InterpreterOutputChangeWatcherTest implements 
InterpreterOutputChangeListener {
+  private Path tmpDir;
   private File fileChanged;
   private AtomicInteger numChanged;
   private InterpreterOutputChangeWatcher watcher;
 
-  @Before
-  public void setUp() throws Exception {
+  @BeforeEach
+  void setUp() throws Exception {
     watcher = new InterpreterOutputChangeWatcher(this);
     watcher.start();
 
-    tmpDir = new File(System.getProperty("java.io.tmpdir") + "/ZeppelinLTest_" 
+
-        System.currentTimeMillis());
-    tmpDir.mkdirs();
+    tmpDir = Files.createTempDirectory("ZeppelinLTest");
     fileChanged = null;
     numChanged = new AtomicInteger(0);
   }
 
-  @After
-  public void tearDown() throws Exception {
+  @AfterEach
+  void tearDown() throws Exception {
     watcher.shutdown();
-    delete(tmpDir);
+    FileUtils.deleteDirectory(tmpDir.toFile());
   }
 
-  private void delete(File file) {
-    if (file.isFile()) {
-      file.delete();
-    } else if (file.isDirectory()) {
-      File[] files = file.listFiles();
-      if (files != null && files.length > 0) {
-        for (File f : files) {
-          delete(f);
-        }
-      }
-      file.delete();
-    }
-  }
+  @Test
+  void test() throws IOException, InterruptedException {
 
-
-  // @Test
-  public void test() throws IOException, InterruptedException {
     assertNull(fileChanged);
     assertEquals(0, numChanged.get());
-
-    Thread.sleep(1000);
     // create new file
-    File file1 = new File(tmpDir, "test1");
+    File file1 = new File(tmpDir.toFile(), "test1");
     file1.createNewFile();
 
-    File file2 = new File(tmpDir, "test2");
+    File file2 = new File(tmpDir.toFile(), "test2");
     file2.createNewFile();
 
     watcher.watch(file1);
-    Thread.sleep(1000);
 
     FileOutputStream out1 = new FileOutputStream(file1);
     out1.write(1);
@@ -96,7 +82,8 @@ public class InterpreterOutputChangeWatcherTest implements 
InterpreterOutputChan
     }
 
     assertNotNull(fileChanged);
-    assertEquals(1, numChanged.get());
+    assertEquals(fileChanged, file1);
+    assertTrue(numChanged.get() >= 1, "Changes: " + numChanged.get());
   }
 
 
@@ -106,7 +93,7 @@ public class InterpreterOutputChangeWatcherTest implements 
InterpreterOutputChan
     numChanged.incrementAndGet();
 
     synchronized (this) {
-      notify();
+      notifyAll();
     }
   }
 
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputTest.java
index e07ec62e30..e219297cfb 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterOutputTest.java
@@ -16,35 +16,34 @@
  */
 package org.apache.zeppelin.interpreter;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-
-public class InterpreterOutputTest implements InterpreterOutputListener {
+class InterpreterOutputTest implements InterpreterOutputListener {
   private InterpreterOutput out;
   int numAppendEvent;
   int numUpdateEvent;
 
-  @Before
-  public void setUp() {
+  @BeforeEach
+  void setUp() {
     out = new InterpreterOutput(this);
     numAppendEvent = 0;
     numUpdateEvent = 0;
   }
 
-  @After
-  public void tearDown() throws IOException {
+  @AfterEach
+  void tearDown() throws IOException {
     out.close();
   }
 
   @Test
-  public void testDetectNewline() throws IOException {
+  void testDetectNewline() throws IOException {
     out.write("hello\nworld");
     assertEquals(1, out.size());
     assertEquals(InterpreterResult.Type.TEXT, out.getOutputAt(0).getType());
@@ -59,7 +58,7 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
   }
 
   @Test
-  public void testFlush() throws IOException {
+  void testFlush() throws IOException {
     out.write("hello\nworld");
     assertEquals("hello\n", new String(out.getOutputAt(0).toByteArray()));
     assertEquals(1, numAppendEvent);
@@ -81,7 +80,7 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
 
 
   @Test
-  public void testType() throws IOException {
+  void testType() throws IOException {
     // default output stream type is TEXT
     out.write("Text\n");
     assertEquals(InterpreterResult.Type.TEXT, out.getOutputAt(0).getType());
@@ -113,13 +112,13 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
   }
 
   @Test
-  public void testChangeTypeInTheBeginning() throws IOException {
+  void testChangeTypeInTheBeginning() throws IOException {
     out.write("%html\nHello");
     assertEquals(InterpreterResult.Type.HTML, out.getOutputAt(0).getType());
   }
 
   @Test
-  public void testChangeTypeWithMultipleNewline() throws IOException {
+  void testChangeTypeWithMultipleNewline() throws IOException {
     out.write("%html\n");
     assertEquals(InterpreterResult.Type.HTML, out.getOutputAt(0).getType());
 
@@ -137,14 +136,14 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
   }
 
   @Test
-  public void testChangeTypeWithoutData() throws IOException {
+  void testChangeTypeWithoutData() throws IOException {
     out.write("%html\n%table\n");
     assertEquals(InterpreterResult.Type.HTML, out.getOutputAt(0).getType());
     assertEquals(InterpreterResult.Type.TABLE, out.getOutputAt(1).getType());
   }
 
   @Test
-  public void testMagicData() throws IOException {
+  void testMagicData() throws IOException {
     out.write("%table col1\tcol2\n\n%html <h3> This is a hack 
</h3>\t234\n".getBytes());
     assertEquals(InterpreterResult.Type.TABLE, out.getOutputAt(0).getType());
     assertEquals(InterpreterResult.Type.HTML, out.getOutputAt(1).getType());
@@ -155,7 +154,7 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
 
 
   @Test
-  public void testTableCellFormatting() throws IOException {
+  void testTableCellFormatting() throws IOException {
     out.write("%table col1\tcol2\n\n%html val1\tval2\n".getBytes());
     assertEquals(InterpreterResult.Type.TABLE, out.getOutputAt(0).getType());
     assertEquals("col1\tcol2\n", new String(out.getOutputAt(0).toByteArray()));
@@ -164,7 +163,7 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
   }
 
   @Test
-  public void testMixTableText() throws IOException {
+  void testMixTableText() throws IOException {
     out.write("%table col1\tcol2\n\n%text val1".getBytes());
     assertEquals(InterpreterResult.Type.TABLE, out.getOutputAt(0).getType());
     assertEquals("col1\tcol2\n", new String(out.getOutputAt(0).toByteArray()));
@@ -174,7 +173,7 @@ public class InterpreterOutputTest implements 
InterpreterOutputListener {
   }
 
   @Test
-  public void testTruncate() throws IOException {
+  void testTruncate() throws IOException {
     // output is truncated after the new line
     InterpreterOutput.LIMIT = 3;
     out = new InterpreterOutput(this);
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterResultTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterResultTest.java
index 84805acd73..dc54f58182 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterResultTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterResultTest.java
@@ -17,27 +17,26 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
-
-public class InterpreterResultTest {
+class InterpreterResultTest {
 
   @Test
-  public void testTextType() {
+  void testTextType() {
 
     InterpreterResult result = new 
InterpreterResult(InterpreterResult.Code.SUCCESS,
         "this is a TEXT type");
-    assertEquals("No magic", InterpreterResult.Type.TEXT, 
result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.TEXT, 
result.message().get(0).getType(), "No magic");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS, "%this is a 
TEXT type");
-    assertEquals("No magic", InterpreterResult.Type.TEXT, 
result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.TEXT, 
result.message().get(0).getType(), "No magic");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS, "%\n");
     assertEquals(0, result.message().size());
   }
 
   @Test
-  public void testSimpleMagicType() {
+  void testSimpleMagicType() {
     InterpreterResult result = null;
 
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
@@ -52,61 +51,62 @@ public class InterpreterResultTest {
   }
 
   @Test
-  public void testComplexMagicType() {
+  void testComplexMagicType() {
     InterpreterResult result = null;
 
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "some text before %table col1\tcol2\naaa\t123\n");
-    assertEquals("some text before magic return magic",
-        InterpreterResult.Type.TEXT, result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.TEXT, 
result.message().get(0).getType(),
+        "some text before magic return magic");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "some text before\n%table col1\tcol2\naaa\t123\n");
-    assertEquals("some text before magic return magic",
-        InterpreterResult.Type.TEXT, result.message().get(0).getType());
-    assertEquals("some text before magic return magic",
-        InterpreterResult.Type.TABLE, result.message().get(1).getType());
+    assertEquals(InterpreterResult.Type.TEXT, 
result.message().get(0).getType(),
+        "some text before magic return magic");
+    assertEquals(InterpreterResult.Type.TABLE, 
result.message().get(1).getType(),
+        "some text before magic return magic");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%html  <h3> This is a hack </h3> %table\n col1\tcol2\naaa\t123\n");
-    assertEquals("magic A before magic B return magic A",
-        InterpreterResult.Type.HTML, result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.HTML, 
result.message().get(0).getType(),
+        "magic A before magic B return magic A");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "some text before magic word %table col1\tcol2\naaa\t123\n %html  " +
             "<h3> This is a hack </h3>");
-    assertEquals("text & magic A before magic B return magic A",
-        InterpreterResult.Type.TEXT, result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.TEXT, 
result.message().get(0).getType(),
+        "text & magic A before magic B return magic A");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%table col1\tcol2\naaa\t123\n %html  <h3> This is a hack </h3> %table 
col1\naaa\n123\n");
-    assertEquals("magic A, magic B, magic a' return magic A",
-        InterpreterResult.Type.TABLE, result.message().get(0).getType());
+    assertEquals(InterpreterResult.Type.TABLE, 
result.message().get(0).getType(),
+        "magic A, magic B, magic a' return magic A");
   }
 
   @Test
-  public void testSimpleMagicData() {
+  void testSimpleMagicData() {
 
     InterpreterResult result = null;
 
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%table col1\tcol2\naaa\t123\n");
-    assertEquals("%table col1\tcol2\naaa\t123\n",
-        "col1\tcol2\naaa\t123\n", result.message().get(0).getData());
+    assertEquals("col1\tcol2\naaa\t123\n", result.message().get(0).getData(),
+        "%table col1\tcol2\naaa\t123\n");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%table\ncol1\tcol2\naaa\t123\n");
-    assertEquals("%table\ncol1\tcol2\naaa\t123\n",
-        "col1\tcol2\naaa\t123\n", result.message().get(0).getData());
+    assertEquals("col1\tcol2\naaa\t123\n", result.message().get(0).getData(),
+        "%table\ncol1\tcol2\naaa\t123\n");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "some text before magic word\n%table col1\tcol2\naaa\t123\n");
-    assertEquals("some text before magic word\n%table col1\tcol2\naaa\t123\n",
-        "col1\tcol2\naaa\t123\n", result.message().get(1).getData());
+    assertEquals("col1\tcol2\naaa\t123\n", result.message().get(1).getData(),
+        "some text before magic word\n%table col1\tcol2\naaa\t123\n");
   }
 
-  public void testComplexMagicData() {
+  @Test
+  void testComplexMagicData() {
 
     InterpreterResult result = null;
 
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "some text before\n%table col1\tcol2\naaa\t123\n");
-    assertEquals("text before %table", "some text before\n", 
result.message().get(0).getData());
-    assertEquals("text after %table", "col1\tcol2\naaa\t123\n", 
result.message().get(1).getData());
+    assertEquals("some text before\n", result.message().get(0).getData(), 
"text before %table");
+    assertEquals("col1\tcol2\naaa\t123\n", result.message().get(1).getData(), 
"text after %table");
     result = new InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%html  <h3> This is a hack </h3>\n%table\ncol1\tcol2\naaa\t123\n");
     assertEquals(" <h3> This is a hack </h3>\n", 
result.message().get(0).getData());
@@ -125,7 +125,7 @@ public class InterpreterResultTest {
   }
 
   @Test
-  public void testToString() {
+  void testToString() {
     assertEquals("%html hello", new 
InterpreterResult(InterpreterResult.Code.SUCCESS,
         "%html hello").toString());
   }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterTest.java
index 72b9f58fe6..b734095609 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/InterpreterTest.java
@@ -17,17 +17,17 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.Properties;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
 //TODO(zjffdu) add more test for Interpreter which is a very important class
-public class InterpreterTest {
+class InterpreterTest {
 
   @Test
-  public void testDefaultProperty() {
+  void testDefaultProperty() {
     Properties p = new Properties();
     p.put("p1", "v1");
     Interpreter intp = new DummyInterpreter(p);
@@ -38,7 +38,7 @@ public class InterpreterTest {
   }
 
   @Test
-  public void testOverriddenProperty() {
+  void testOverriddenProperty() {
     Properties p = new Properties();
     p.put("p1", "v1");
     Interpreter intp = new DummyInterpreter(p);
@@ -52,7 +52,7 @@ public class InterpreterTest {
   }
 
   @Test
-  public void testPropertyWithReplacedContextFields() {
+  void testPropertyWithReplacedContextFields() {
     String noteId = "testNoteId";
     String paragraphTitle = "testParagraphTitle";
     String paragraphText = "testParagraphText";
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/LazyOpenInterpreterTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/LazyOpenInterpreterTest.java
index fe5cc8a3ad..edc873615b 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/LazyOpenInterpreterTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/LazyOpenInterpreterTest.java
@@ -17,28 +17,28 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-public class LazyOpenInterpreterTest {
+import org.junit.jupiter.api.Test;
+
+class LazyOpenInterpreterTest {
   Interpreter interpreter = mock(Interpreter.class);
 
   @Test
-  public void isOpenTest() throws InterpreterException {
+  void isOpenTest() throws InterpreterException {
     InterpreterResult interpreterResult = new 
InterpreterResult(InterpreterResult.Code.SUCCESS, "");
     when(interpreter.interpret(any(String.class), 
any(InterpreterContext.class)))
         .thenReturn(interpreterResult);
 
     LazyOpenInterpreter lazyOpenInterpreter = new 
LazyOpenInterpreter(interpreter);
 
-    assertFalse("Interpreter is not open", lazyOpenInterpreter.isOpen());
+    assertFalse(lazyOpenInterpreter.isOpen(), "Interpreter is not open");
     InterpreterContext interpreterContext = mock(InterpreterContext.class);
     lazyOpenInterpreter.interpret("intp 1", interpreterContext);
-    assertTrue("Interpeter is open", lazyOpenInterpreter.isOpen());
+    assertTrue(lazyOpenInterpreter.isOpen(), "Interpeter is open");
   }
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/SingleRowInterpreterResultTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/SingleRowInterpreterResultTest.java
index a83c685fa6..bbdbc72408 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/SingleRowInterpreterResultTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/SingleRowInterpreterResultTest.java
@@ -17,17 +17,17 @@
 
 package org.apache.zeppelin.interpreter;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-public class SingleRowInterpreterResultTest {
+class SingleRowInterpreterResultTest {
 
   @Test
-  public void testHtml() {
+  void testHtml() {
     List<Object> list = Arrays.asList("2020-01-01", 10);
     String template = "Total count:{1} for {0}";
     InterpreterContext context = InterpreterContext.builder().build();
@@ -37,7 +37,7 @@ public class SingleRowInterpreterResultTest {
   }
 
   @Test
-  public void testAngular() {
+  void testAngular() {
     List<Object> list = Arrays.asList("2020-01-01", 10);
     String template = "Total count:{1} for {0}";
     InterpreterContext context = InterpreterContext.builder().build();
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppCtxtVariableTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppCtxtVariableTest.java
index e5ea4d2c5a..f80c47266a 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppCtxtVariableTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppCtxtVariableTest.java
@@ -17,138 +17,133 @@
 
 package org.apache.zeppelin.interpreter;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import org.apache.zeppelin.resource.LocalResourcePool;
 import org.apache.zeppelin.resource.ResourcePool;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-public class ZeppCtxtVariableTest {
+class ZeppCtxtVariableTest {
 
   private ResourcePool resourcePool;
 
-  @Before
-  public void setUp() throws Exception {
+  @BeforeEach
+  void setUp() throws Exception {
     resourcePool = new 
LocalResourcePool("ZeppelinContextVariableInterpolationTest");
     resourcePool.put("PI", "3.1415");
   }
 
-  @After
-  public void tearDown() throws Exception {
-  }
-
   @Test
-  public void stringWithoutPatterns() {
+  void stringWithoutPatterns() {
     String result = AbstractInterpreter.interpolate("The value of PI is not 
exactly 3.14", resourcePool);
-    assertEquals("String without patterns", "The value of PI is not exactly 
3.14", result);
+    assertEquals("The value of PI is not exactly 3.14", result);
   }
 
   @Test
-  public void substitutionInTheMiddle() {
+  void substitutionInTheMiddle() {
     String result = AbstractInterpreter.interpolate("The value of {{PI}} is 
{PI} now", resourcePool);
-    assertEquals("Substitution in the middle", "The value of {PI} is 3.1415 
now", result);
+    assertEquals("The value of {PI} is 3.1415 now", result);
   }
 
   @Test
-  public void substitutionAtTheEnds() {
+  void substitutionAtTheEnds() {
     String result = AbstractInterpreter.interpolate("{{PI}} is now {PI}", 
resourcePool);
-    assertEquals("Substitution at the ends", "{PI} is now 3.1415", result);
+    assertEquals("{PI} is now 3.1415", result);
   }
 
   @Test
-  public void multiLineSubstitutionSuccessful1() {
+  void multiLineSubstitutionSuccessful1() {
     String result = 
AbstractInterpreter.interpolate("{{PI}}\n{PI}\n{{PI}}\n{PI}", resourcePool);
-    assertEquals("multiLineSubstitutionSuccessful1", 
"{PI}\n3.1415\n{PI}\n3.1415", result);
+    assertEquals("{PI}\n3.1415\n{PI}\n3.1415", result);
   }
 
 
   @Test
-  public void multiLineSubstitutionSuccessful2() {
+  void multiLineSubstitutionSuccessful2() {
     String result = AbstractInterpreter.interpolate("prefix {PI} {{PI\n}} 
suffix", resourcePool);
-    assertEquals("multiLineSubstitutionSuccessful2", "prefix 3.1415 {PI\n} 
suffix", result);
+    assertEquals("prefix 3.1415 {PI\n} suffix", result);
   }
 
 
   @Test
-  public void multiLineSubstitutionSuccessful3() {
+  void multiLineSubstitutionSuccessful3() {
     String result = AbstractInterpreter.interpolate("prefix {{\nPI}} {PI} 
suffix", resourcePool);
-    assertEquals("multiLineSubstitutionSuccessful3", "prefix {\nPI} 3.1415 
suffix", result);
+    assertEquals("prefix {\nPI} 3.1415 suffix", result);
   }
 
 
   @Test
-  public void multiLineSubstitutionFailure2() {
+  void multiLineSubstitutionFailure2() {
     String result = AbstractInterpreter.interpolate("prefix {PI\n} suffix", 
resourcePool);
-    assertEquals("multiLineSubstitutionFailure2", "prefix {PI\n} suffix", 
result);
+    assertEquals("prefix {PI\n} suffix", result);
   }
 
 
   @Test
-  public void multiLineSubstitutionFailure3() {
+  void multiLineSubstitutionFailure3() {
     String result = AbstractInterpreter.interpolate("prefix {\nPI} suffix", 
resourcePool);
-    assertEquals("multiLineSubstitutionFailure3", "prefix {\nPI} suffix", 
result);
+    assertEquals("prefix {\nPI} suffix", result);
   }
 
   @Test
-  public void noUndefinedVariableError() {
+  void noUndefinedVariableError() {
     String result = AbstractInterpreter.interpolate("This {pi} will pass 
silently", resourcePool);
-    assertEquals("No partial substitution", "This {pi} will pass silently", 
result);
+    assertEquals("This {pi} will pass silently", result);
   }
 
   @Test
-  public void noPartialSubstitution() {
+  void noPartialSubstitution() {
     String result = AbstractInterpreter.interpolate("A {PI} and a {PIE} are 
different", resourcePool);
-    assertEquals("No partial substitution", "A {PI} and a {PIE} are 
different", result);
+    assertEquals("A {PI} and a {PIE} are different", result);
   }
 
   @Test
-  public void substitutionAndEscapeMixed() {
+  void substitutionAndEscapeMixed() {
     String result = AbstractInterpreter.interpolate("A {PI} is not a {{PIE}}", 
resourcePool);
-    assertEquals("Substitution and escape mixed", "A 3.1415 is not a {PIE}", 
result);
+    assertEquals("A 3.1415 is not a {PIE}", result);
   }
 
   @Test
-  public void unbalancedBracesOne() {
+  void unbalancedBracesOne() {
     String result = AbstractInterpreter.interpolate("A {PI} and a {{PIE} 
remain unchanged", resourcePool);
-    assertEquals("Unbalanced braces - one", "A {PI} and a {{PIE} remain 
unchanged", result);
+    assertEquals("A {PI} and a {{PIE} remain unchanged", result);
   }
 
   @Test
-  public void unbalancedBracesTwo() {
+  void unbalancedBracesTwo() {
     String result = AbstractInterpreter.interpolate("A {PI} and a {PIE}} 
remain unchanged", resourcePool);
-    assertEquals("Unbalanced braces - one", "A {PI} and a {PIE}} remain 
unchanged", result);
+    assertEquals("A {PI} and a {PIE}} remain unchanged", result);
   }
 
   @Test
-  public void tooManyBraces() {
+  void tooManyBraces() {
     String result = AbstractInterpreter.interpolate("This {{{PI}}} remain 
unchanged", resourcePool);
-    assertEquals("Too many braces", "This {{{PI}}} remain unchanged", result);
+    assertEquals("This {{{PI}}} remain unchanged", result);
   }
 
   @Test
-  public void randomBracesOne() {
+  void randomBracesOne() {
     String result = AbstractInterpreter.interpolate("A {{ starts an escaped 
sequence", resourcePool);
-    assertEquals("Random braces - one", "A {{ starts an escaped sequence", 
result);
+    assertEquals("A {{ starts an escaped sequence", result);
   }
 
   @Test
-  public void randomBracesTwo() {
+  void randomBracesTwo() {
     String result = AbstractInterpreter.interpolate("A }} ends an escaped 
sequence", resourcePool);
-    assertEquals("Random braces - two", "A }} ends an escaped sequence", 
result);
+    assertEquals("A }} ends an escaped sequence", result);
   }
 
   @Test
-  public void randomBracesThree() {
+  void randomBracesThree() {
     String result = AbstractInterpreter.interpolate("Paired { begin an escaped 
sequence", resourcePool);
-    assertEquals("Random braces - three", "Paired { begin an escaped 
sequence", result);
+    assertEquals("Paired { begin an escaped sequence", result);
   }
 
   @Test
-  public void randomBracesFour() {
+  void randomBracesFour() {
     String result = AbstractInterpreter.interpolate("Paired } end an escaped 
sequence", resourcePool);
-    assertEquals("Random braces - four", "Paired } end an escaped sequence", 
result);
+    assertEquals("Paired } end an escaped sequence", result);
   }
 
 }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppelinContextTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppelinContextTest.java
index 506f437e90..855e4c0d86 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppelinContextTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/ZeppelinContextTest.java
@@ -17,19 +17,18 @@
 
 package org.apache.zeppelin.interpreter;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
-
-public class ZeppelinContextTest {
+class ZeppelinContextTest {
 
   @Test
-  public void testHooks() throws InvalidHookException {
+  void testHooks() throws InvalidHookException {
     InterpreterHookRegistry hookRegistry = new InterpreterHookRegistry();
     TestZeppelinContext z = new TestZeppelinContext(hookRegistry, 10);
     InterpreterContext context = InterpreterContext.builder()
@@ -43,11 +42,7 @@ public class ZeppelinContextTest {
 
     // get note name via InterpreterContext
     String note_name = z.getInterpreterContext().getNoteName();
-    assertEquals(
-            String.format("Actual note name: %s, but expected %s", note_name, 
"note_name_1"),
-            "note_name_1",
-            note_name
-    );
+    assertEquals("note_name_1", note_name);
 
     // register global hook for current interpreter
     z.registerHook(InterpreterHookRegistry.HookType.PRE_EXEC.getName(), 
"pre_cmd");
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/launcher/InterpreterLauncherTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/launcher/InterpreterLauncherTest.java
index 7c348a626a..e736608fdf 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/launcher/InterpreterLauncherTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/launcher/InterpreterLauncherTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.zeppelin.interpreter.launcher;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
 public class InterpreterLauncherTest {
 
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterServerTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterServerTest.java
index 7f6e0e5d2d..c1700cdef1 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterServerTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterServerTest.java
@@ -25,7 +25,9 @@ import org.apache.zeppelin.interpreter.InterpreterResult;
 import org.apache.zeppelin.interpreter.LazyOpenInterpreter;
 import org.apache.zeppelin.interpreter.thrift.RemoteInterpreterContext;
 import org.apache.zeppelin.interpreter.thrift.RemoteInterpreterResult;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -34,16 +36,18 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 
-public class RemoteInterpreterServerTest {
+class RemoteInterpreterServerTest {
+
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(RemoteInterpreterServerTest.class);
 
   @Test
-  public void testStartStop() throws Exception {
+  void testStartStop() throws Exception {
     RemoteInterpreterServer server = new RemoteInterpreterServer("localhost",
         RemoteInterpreterUtils.findRandomAvailablePortOnAllLocalInterfaces(), 
":", "groupId", true);
 
@@ -52,7 +56,7 @@ public class RemoteInterpreterServerTest {
   }
 
   @Test
-  public void testStartStopWithQueuedEvents() throws Exception {
+  void testStartStopWithQueuedEvents() throws Exception {
     RemoteInterpreterServer server = new RemoteInterpreterServer("localhost",
         RemoteInterpreterUtils.findRandomAvailablePortOnAllLocalInterfaces(), 
":", "groupId", true);
     server.intpEventClient = mock(RemoteInterpreterEventClient.class);
@@ -99,7 +103,7 @@ public class RemoteInterpreterServerTest {
   }
 
   @Test
-  public void testInterpreter() throws Exception {
+  void testInterpreter() throws Exception {
     final RemoteInterpreterServer server = new 
RemoteInterpreterServer("localhost",
         RemoteInterpreterUtils.findRandomAvailablePortOnAllLocalInterfaces(), 
":", "groupId", true);
     server.init(new HashMap<>());
@@ -206,6 +210,8 @@ public class RemoteInterpreterServerTest {
     server.close("session_1", Test2Interpreter.class.getName());
     assertEquals(1, server.getInterpreterGroup().get("session_1").size());
 
+    // // Close is async process
+    Thread.sleep(100);
     // after close -> thread of Test1Interpreter is not running
     assertEquals(false, 
isThreadRunning(interpreter1.getScheduler().getName()));
   }
@@ -245,14 +251,18 @@ public class RemoteInterpreterServerTest {
         try {
           context.out.write("INTERPRETER_OUT");
         } catch (IOException e) {
-          e.printStackTrace();
+          LOGGER.error("IO Error", e);
         }
         return new InterpreterResult(InterpreterResult.Code.SUCCESS, 
"SINGLE_OUTPUT_SUCCESS");
       } else if (st.equals("SLEEP")) {
-        try {
-          Thread.sleep(3 * 1000);
-        } catch (InterruptedException e) {
-          e.printStackTrace();
+        int count = 0;
+        while (!cancelled.get() || count > 30) {
+          try {
+            Thread.sleep(100);
+          } catch (InterruptedException e) {
+            return new InterpreterResult(InterpreterResult.Code.ERROR, 
"SLEEP_SUCCESS");
+          }
+          ++count;
         }
         return new InterpreterResult(InterpreterResult.Code.SUCCESS, 
"SLEEP_SUCCESS");
       }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtilsTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtilsTest.java
index 1d6fb521ee..85f4284c50 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtilsTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtilsTest.java
@@ -17,16 +17,16 @@
 
 package org.apache.zeppelin.interpreter.remote;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 
-import static org.junit.Assert.assertTrue;
+import org.junit.jupiter.api.Test;
 
-public class RemoteInterpreterUtilsTest {
+class RemoteInterpreterUtilsTest {
 
   @Test
-  public void testfindAvailablePort() throws IOException {
+  void testfindAvailablePort() throws IOException {
     assertTrue(RemoteInterpreterUtils.findAvailablePort(":") > 0);
 
     String portRange = ":30000";
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/ByteBufferUtilTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/ByteBufferUtilTest.java
index 3a0a7f432d..d41c365af2 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/ByteBufferUtilTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/ByteBufferUtilTest.java
@@ -18,16 +18,17 @@
 
 package org.apache.zeppelin.interpreter.util;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
-import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
-public class ByteBufferUtilTest {
+class ByteBufferUtilTest {
 
   @Test
-  public void fromByteBufferToByteBuffer() {
+  void fromByteBufferToByteBuffer() {
     String str = "Hello world";
     ByteBuffer byteBuffer = ByteBufferUtils.stringToByteBuffer(str, 
Charset.defaultCharset());
     assertEquals(str, ByteBufferUtils.ByteBufferToString(byteBuffer, 
Charset.defaultCharset()));
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/SqlSplitterTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/SqlSplitterTest.java
index 03cfef4aa2..0efdd28cd8 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/SqlSplitterTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/util/SqlSplitterTest.java
@@ -18,16 +18,16 @@
 
 package org.apache.zeppelin.interpreter.util;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
-public class SqlSplitterTest {
+class SqlSplitterTest {
 
   @Test
-  public void testNormalSql() {
+  void testNormalSql() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     List<String> sqls = sqlSplitter.splitSql("show tables");
     assertEquals(1, sqls.size());
@@ -63,7 +63,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testSingleLineComment() {
+  void testSingleLineComment() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     List<String> sqls = sqlSplitter.splitSql("show tables;\n--comment_1");
     assertEquals(1, sqls.size());
@@ -122,7 +122,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testMultipleLineComment() {
+  void testMultipleLineComment() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     List<String> sqls = sqlSplitter.splitSql("show tables;\n/*comment_1*/");
     assertEquals(1, sqls.size());
@@ -181,7 +181,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testInvalidSql() {
+  void testInvalidSql() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     List<String> sqls = sqlSplitter.splitSql("select a from table_1 where a=' 
and b=1");
     assertEquals(1, sqls.size());
@@ -197,7 +197,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testComplexSql() {
+  void testComplexSql() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     String text = "/* ; */\n" +
             "-- /* comment\n" +
@@ -232,7 +232,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testCustomSplitter_1() {
+  void testCustomSplitter_1() {
     SqlSplitter sqlSplitter = new SqlSplitter("//");
     List<String> sqls = sqlSplitter.splitSql("show tables;\n//comment_1");
     assertEquals(1, sqls.size());
@@ -282,7 +282,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testCustomSplitter_2() {
+  void testCustomSplitter_2() {
     SqlSplitter sqlSplitter = new SqlSplitter("#");
     List<String> sqls = sqlSplitter.splitSql("show tables;\n#comment_1");
     assertEquals(1, sqls.size());
@@ -332,7 +332,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testQuoteInComment() {
+  void testQuoteInComment() {
     SqlSplitter sqlSplitter = new SqlSplitter();
     List<String> sqls = sqlSplitter.splitSql("show tables;-- 
comment_1'\ndescribe table_1");
     assertEquals(2, sqls.size());
@@ -356,7 +356,7 @@ public class SqlSplitterTest {
   }
 
   @Test
-  public void testCommentAtEnd() {
+  void testCommentAtEnd() {
     String sql = "\n" +
             "select\n" +
             "  'one'\n" +
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/LocalResourcePoolTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/LocalResourcePoolTest.java
index 8b42dc8b2f..688ac90817 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/LocalResourcePoolTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/LocalResourcePoolTest.java
@@ -16,20 +16,20 @@
  */
 package org.apache.zeppelin.resource;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import org.junit.jupiter.api.Test;
 
 /**
  * Unittest for LocalResourcePool
  */
-public class LocalResourcePoolTest {
+class LocalResourcePoolTest {
 
   @Test
-  public void testGetPutResourcePool() {
+  void testGetPutResourcePool() {
 
     LocalResourcePool pool = new LocalResourcePool("pool1");
     assertEquals("pool1", pool.id());
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceSetTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceSetTest.java
index cc1cad1911..cb383b9ad8 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceSetTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceSetTest.java
@@ -16,17 +16,17 @@
  */
 package org.apache.zeppelin.resource;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
 
 /**
  * Unit test for ResourceSet
  */
-public class ResourceSetTest {
+class ResourceSetTest {
 
   @Test
-  public void testFilterByName() {
+  void testFilterByName() {
     ResourceSet set = new ResourceSet();
 
     set.add(new Resource(null, new ResourceId("poo1", "resource1"), "value1"));
@@ -39,7 +39,7 @@ public class ResourceSetTest {
   }
 
   @Test
-  public void testFilterByClassName() {
+  void testFilterByClassName() {
     ResourceSet set = new ResourceSet();
 
     set.add(new Resource(null, new ResourceId("poo1", "resource1"), "value1"));
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceTest.java
index 0445229cff..965f6f9bb6 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/resource/ResourceTest.java
@@ -19,32 +19,35 @@ package org.apache.zeppelin.resource;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import org.junit.Test;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.junit.Assert.assertEquals;
-
 /**
  * Test for Resource
  */
-public class ResourceTest {
+class ResourceTest {
   @Test
-  public void testSerializeDeserialize() throws IOException, 
ClassNotFoundException {
+  void testSerializeDeserialize() throws IOException, ClassNotFoundException {
     ByteBuffer buffer = Resource.serializeObject("hello");
     assertEquals("hello", Resource.deserializeObject(buffer));
   }
 
   @Test
-  public void testInvokeMethod_shouldAbleToInvokeMethodWithNoParams() {
+  void testInvokeMethod_shouldAbleToInvokeMethodWithNoParams() {
     Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
     assertEquals(6, r.invokeMethod("length"));
     assertEquals(6, r.invokeMethod("length", new Class[]{}, new Object[]{}));
   }
 
   @Test
-  public void testInvokeMethod_shouldAbleToInvokeMethodWithTypeInference() 
throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException, IllegalAccessException {
+  void testInvokeMethod_shouldAbleToInvokeMethodWithTypeInference() throws 
ClassNotFoundException,
+      NoSuchMethodException, InvocationTargetException, IllegalAccessException 
{
     Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
     assertEquals("ect", r.invokeMethod("substring", new Object[]{3}));
     assertEquals("obj", r.invokeMethod("substring", new Object[]{0,3}));
@@ -58,14 +61,21 @@ public class ResourceTest {
     assertEquals(true, r.invokeMethod("startsWith", new 
ArrayList<>(Arrays.asList("obj"))));
   }
 
-  @Test(expected = ClassNotFoundException.class)
-  public void testInvokeMethod_shouldNotAbleToInvokeMethodWithTypeInference() 
throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException, IllegalAccessException {
-    Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
-    r.invokeMethod("indexOf", new Object[]{"ct",3,4});
+  @Test
+  void testInvokeMethod_shouldNotAbleToInvokeMethodWithTypeInference()
+      throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException,
+      IllegalAccessException {
+    assertThrows(ClassNotFoundException.class, () -> {
+      Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
+      r.invokeMethod("indexOf", new Object[] { "ct", 3, 4 });
+    });
+
   }
 
     @Test
-  public void testInvokeMethod_shouldAbleToInvokeMethodWithParamClassName() 
throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException, IllegalAccessException {
+    void testInvokeMethod_shouldAbleToInvokeMethodWithParamClassName()
+        throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException,
+        IllegalAccessException {
     Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
     assertEquals("ect", r.invokeMethod("substring", new String[]{"int"}, new 
Object[]{3}));
     assertEquals(true, r.invokeMethod("startsWith", new 
String[]{"java.lang.String"}, new Object[]{"obj"}));
@@ -75,7 +85,8 @@ public class ResourceTest {
   }
 
   @Test
-  public void testInvokeMethod_shouldAbleToInvokeMethodWithClass() throws 
ClassNotFoundException, NoSuchMethodException, InvocationTargetException, 
IllegalAccessException {
+  void testInvokeMethod_shouldAbleToInvokeMethodWithClass() throws 
ClassNotFoundException,
+      NoSuchMethodException, InvocationTargetException, IllegalAccessException 
{
     Resource r = new Resource(null, new ResourceId("pool1", "name1"), 
"object");
     assertEquals(true, r.invokeMethod("startsWith", new Class[]{ 
java.lang.String.class }, new Object[]{"obj"}));
   }
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/FIFOSchedulerTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/FIFOSchedulerTest.java
index f383d411e7..9bef1e7b94 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/FIFOSchedulerTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/FIFOSchedulerTest.java
@@ -17,25 +17,25 @@
 
 package org.apache.zeppelin.scheduler;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.zeppelin.scheduler.Job.Status;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 
-public class FIFOSchedulerTest {
+class FIFOSchedulerTest {
 
-  private SchedulerFactory schedulerSvc;
+  private static SchedulerFactory schedulerSvc;
 
-  @Before
-  public void setUp() {
+  @BeforeAll
+  static void setUp() {
     schedulerSvc = SchedulerFactory.singleton();
   }
 
   @Test
-  public void testRun() throws InterruptedException {
-    Scheduler s = schedulerSvc.createOrGetFIFOScheduler("test");
+  void testRun() throws InterruptedException {
+    Scheduler s = schedulerSvc.createOrGetFIFOScheduler("testRun");
 
     Job<?> job1 = new SleepingJob("job1", null, 500);
     Job<?> job2 = new SleepingJob("job2", null, 500);
@@ -55,8 +55,8 @@ public class FIFOSchedulerTest {
   }
 
   @Test
-  public void testAbort() throws InterruptedException {
-    Scheduler s = schedulerSvc.createOrGetFIFOScheduler("test");
+  void testAbort() throws InterruptedException {
+    Scheduler s = schedulerSvc.createOrGetFIFOScheduler("testAbort");
 
     Job<?> job1 = new SleepingJob("job1", null, 500);
     Job<?> job2 = new SleepingJob("job2", null, 500);
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/JobTest.java 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/JobTest.java
index b6eb5227b5..e340866df0 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/JobTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/JobTest.java
@@ -23,29 +23,29 @@ import org.apache.zeppelin.interpreter.InterpreterException;
 import org.apache.zeppelin.interpreter.InterpreterResult;
 import org.apache.zeppelin.interpreter.InterpreterResult.Code;
 import 
org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer.InterpretJob;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 
-@RunWith(MockitoJUnitRunner.class)
-public class JobTest {
+class JobTest {
 
-  @Mock private JobListener mockJobListener;
-  @Mock private Interpreter mockInterpreter;
-  @Mock private InterpreterContext mockInterpreterContext;
+  private JobListener mockJobListener;
+  private Interpreter mockInterpreter;
+  private InterpreterContext mockInterpreterContext;
   private InterpretJob spyInterpretJob;
 
-  @Before
-  public void setUp() throws Exception {
+  @BeforeEach
+  void setUp() throws Exception {
+    mockJobListener = mock(JobListener.class);
+    mockInterpreter = mock(Interpreter.class);
+    mockInterpreterContext = mock(InterpreterContext.class);
     InterpretJob interpretJob =
         new InterpretJob(
             "jobid",
@@ -58,7 +58,7 @@ public class JobTest {
   }
 
   @Test
-  public void testNormalCase() throws Throwable {
+  void testNormalCase() throws Throwable {
 
     InterpreterResult successInterpreterResult =
         new InterpreterResult(Code.SUCCESS, "success result");
@@ -70,7 +70,7 @@ public class JobTest {
   }
 
   @Test
-  public void testErrorCase() throws Throwable {
+  void testErrorCase() throws Throwable {
     String failedMessage = "failed message";
     InterpreterException interpreterException = new 
InterpreterException(failedMessage);
     doThrow(interpreterException).when(spyInterpretJob).jobRun();
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/ParallelSchedulerTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/ParallelSchedulerTest.java
index fc8fa88d02..3cc0022c3a 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/ParallelSchedulerTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/scheduler/ParallelSchedulerTest.java
@@ -17,24 +17,25 @@
 
 package org.apache.zeppelin.scheduler;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import org.apache.zeppelin.scheduler.Job.Status;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
 
 public class ParallelSchedulerTest {
 
   private static SchedulerFactory schedulerSvc;
 
-  @BeforeClass
+  @BeforeAll
   public static void setUp() {
     schedulerSvc = SchedulerFactory.singleton();
   }
 
   @Test
-  public void testRun() throws InterruptedException {
-    Scheduler s = schedulerSvc.createOrGetParallelScheduler("test", 2);
+  void testRun() throws InterruptedException {
+    Scheduler s = schedulerSvc.createOrGetParallelScheduler("testRun", 2);
 
     Job<?> job1 = new SleepingJob("job1", null, 500);
     Job<?> job2 = new SleepingJob("job2", null, 500);
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/InterpreterResultTableDataTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/InterpreterResultTableDataTest.java
index 0618d3b305..b278fda8b2 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/InterpreterResultTableDataTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/InterpreterResultTableDataTest.java
@@ -18,16 +18,17 @@ package org.apache.zeppelin.tabledata;
 
 import org.apache.zeppelin.interpreter.InterpreterResult;
 import org.apache.zeppelin.interpreter.InterpreterResultMessage;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 
 import java.util.Iterator;
 
-import static junit.framework.TestCase.assertFalse;
-import static org.junit.Assert.assertEquals;
 
-public class InterpreterResultTableDataTest {
+class InterpreterResultTableDataTest {
   @Test
-  public void test() {
+  void test() {
     InterpreterResultMessage msg = new InterpreterResultMessage(
         InterpreterResult.Type.TABLE,
         "key\tvalue\nsun\t100\nmoon\t200\n");
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataProxyTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataProxyTest.java
index a4a8ffe9c1..48c3938dcc 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataProxyTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataProxyTest.java
@@ -19,24 +19,24 @@ package org.apache.zeppelin.tabledata;
 import org.apache.zeppelin.interpreter.InterpreterResult;
 import org.apache.zeppelin.interpreter.InterpreterResultMessage;
 import org.apache.zeppelin.resource.LocalResourcePool;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import java.util.Iterator;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import java.util.Iterator;
 
-public class TableDataProxyTest {
+class TableDataProxyTest {
   private LocalResourcePool pool;
 
-  @Before
-  public void setUp() {
+  @BeforeEach
+  void setUp() {
     pool = new LocalResourcePool("p1");
   }
 
   @Test
-  public void testProxyTable() {
+  void testProxyTable() {
     InterpreterResultMessage msg = new InterpreterResultMessage(
         InterpreterResult.Type.TABLE,
         "key\tvalue\nsun\t100\nmoon\t200\n");
diff --git 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataUtilsTest.java
 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataUtilsTest.java
index 5ff6fba60b..966b996780 100644
--- 
a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataUtilsTest.java
+++ 
b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/tabledata/TableDataUtilsTest.java
@@ -17,16 +17,16 @@
 
 package org.apache.zeppelin.tabledata;
 
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.Arrays;
 
-public class TableDataUtilsTest {
+import org.junit.jupiter.api.Test;
+
+class TableDataUtilsTest {
 
   @Test
-  public void testColumn() {
+  void testColumn() {
     assertEquals("hello world", 
TableDataUtils.normalizeColumn("hello\tworld"));
     assertEquals("hello world", 
TableDataUtils.normalizeColumn("hello\nworld"));
     assertEquals("hello world", 
TableDataUtils.normalizeColumn("hello\r\nworld"));
@@ -36,7 +36,7 @@ public class TableDataUtilsTest {
   }
 
   @Test
-  public void testColumns() {
+  void testColumns() {
     assertEquals(Arrays.asList("hello world", "hello world"),
             TableDataUtils.normalizeColumns(new Object[]{"hello\tworld", 
"hello\nworld"}));
 


Reply via email to