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

lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new d8c2930a2 [ISSUE #5276] Use OS pick-up port (#5280)
d8c2930a2 is described below

commit d8c2930a204c34c17de7677629b3654f77878c6d
Author: Zhanhui Li <[email protected]>
AuthorDate: Wed Oct 12 11:10:51 2022 +0800

    [ISSUE #5276] Use OS pick-up port (#5280)
    
    * Use OS pick-up port
    
    * Replace deprecated PosixParser with DefaultParser for cli argument parsing
    
    * DefaultParser cannot parse values that contain '=' character
    
    * Revert changes to ServerUtil
---
 .../ClusterAclConfigVersionListSubCommandTest.java |  5 +++--
 .../acl/DeleteAccessConfigSubCommandTest.java      |  5 +++--
 .../command/acl/GetAccessConfigSubCommandTest.java |  5 +++--
 .../acl/UpdateAccessConfigSubCommandTest.java      | 19 ++++++----------
 .../acl/UpdateGlobalWhiteAddrSubCommandTest.java   |  5 +++--
 .../broker/BrokerConsumeStatsSubCommadTest.java    |  5 +++--
 .../command/broker/BrokerStatusSubCommandTest.java | 15 ++++---------
 .../broker/CleanExpiredCQSubCommandTest.java       | 15 ++++---------
 .../broker/CleanUnusedTopicCommandTest.java        | 11 +++-------
 .../DeleteExpiredCommitLogSubCommandTest.java      | 13 +++--------
 .../command/broker/GetBrokerConfigCommandTest.java | 15 ++++---------
 .../command/broker/SendMsgStatusCommandTest.java   |  5 +++--
 .../broker/UpdateBrokerConfigSubCommandTest.java   | 14 ++++--------
 .../ConsumerConnectionSubCommandTest.java          | 16 +++++---------
 .../ProducerConnectionSubCommandTest.java          |  9 ++++----
 .../consumer/ConsumerProgressSubCommandTest.java   |  9 ++++----
 .../consumer/ConsumerStatusSubCommandTest.java     |  9 ++++----
 .../consumer/GetConsumerConfigSubCommandTest.java  |  8 +++----
 .../command/message/ConsumeMessageCommandTest.java | 25 ++++++++++++----------
 .../message/QueryMsgByUniqueKeySubCommandTest.java | 17 +++++++++------
 .../message/QueryMsgTraceByIdSubCommandTest.java   |  9 ++++----
 .../command/message/SendMessageCommandTest.java    |  8 ++++---
 .../namesrv/AddWritePermSubCommandTest.java        | 15 ++++++-------
 .../namesrv/GetNamesrvConfigCommandTest.java       | 15 ++++++-------
 .../command/namesrv/UpdateKvConfigCommandTest.java | 12 ++++++-----
 .../namesrv/WipeWritePermSubCommandTest.java       | 14 +++++-------
 .../offset/GetConsumerStatusCommandTest.java       |  9 ++++----
 .../offset/ResetOffsetByTimeCommandTest.java       | 12 ++++++-----
 .../offset/ResetOffsetByTimeOldCommandTest.java    |  5 +++--
 .../offset/SkipAccumulationCommandTest.java        |  5 +++--
 .../command/producer/ProducerSubCommandTest.java   | 15 ++++++-------
 .../tools/command/server/NameServerMocker.java     | 24 ++++++++-------------
 .../tools/command/server/ServerResponseMocker.java | 15 ++++---------
 .../command/topic/AllocateMQSubCommandTest.java    |  5 +++--
 .../command/topic/DeleteTopicSubCommandTest.java   |  5 +++--
 .../command/topic/TopicClusterSubCommandTest.java  |  5 +++--
 .../command/topic/TopicRouteSubCommandTest.java    |  5 +++--
 .../command/topic/TopicStatusSubCommandTest.java   |  5 +++--
 .../command/topic/UpdateOrderConfCommandTest.java  |  5 +++--
 .../topic/UpdateTopicPermSubCommandTest.java       |  5 +++--
 .../command/topic/UpdateTopicSubCommandTest.java   |  5 +++--
 41 files changed, 192 insertions(+), 231 deletions(-)

diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/ClusterAclConfigVersionListSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/ClusterAclConfigVersionListSubCommandTest.java
index ba8baa3e6..4298c78c3 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/ClusterAclConfigVersionListSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/ClusterAclConfigVersionListSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.acl;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -32,7 +32,8 @@ public class ClusterAclConfigVersionListSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-c default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster");
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/DeleteAccessConfigSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/DeleteAccessConfigSubCommandTest.java
index 74092f45f..28430b823 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/DeleteAccessConfigSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/DeleteAccessConfigSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.acl;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -32,7 +32,8 @@ public class DeleteAccessConfigSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-a unit-test", "-c default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('a').trim()).isEqualTo("unit-test");
         
assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster");
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java
index ecdf61c2e..602a27aac 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.rocketmq.tools.command.acl;
 
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -32,7 +32,8 @@ public class GetAccessConfigSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-c default-cluster"};
         final CommandLine commandLine =
-                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs, cmd.buildCommandlineOptions(options), new PosixParser());
+                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs,
+                    cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster");
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateAccessConfigSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateAccessConfigSubCommandTest.java
index 2c133a252..5e3f90352 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateAccessConfigSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateAccessConfigSubCommandTest.java
@@ -17,6 +17,8 @@
 package org.apache.rocketmq.tools.command.acl;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Options;
@@ -44,8 +46,10 @@ public class UpdateAccessConfigSubCommandTest {
             "-t topicA=DENY;topicB=PUB|SUB",
             "-g groupA=DENY;groupB=SUB",
             "-m true"};
+        // Note: Posix parser is capable of handling values that contains '='.
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new PosixParser());
         
assertThat(commandLine.getOptionValue('b').trim()).isEqualTo("127.0.0.1:10911");
         
assertThat(commandLine.getOptionValue('a').trim()).isEqualTo("RocketMQ");
         
assertThat(commandLine.getOptionValue('s').trim()).isEqualTo("12345678");
@@ -61,12 +65,7 @@ public class UpdateAccessConfigSubCommandTest {
         // topicPerms list value
         if (commandLine.hasOption('t')) {
             String[] topicPerms = 
commandLine.getOptionValue('t').trim().split(";");
-            List<String> topicPermList = new ArrayList<String>();
-            if (topicPerms != null) {
-                for (String topicPerm : topicPerms) {
-                    topicPermList.add(topicPerm);
-                }
-            }
+            List<String> topicPermList = new 
ArrayList<>(Arrays.asList(topicPerms));
             accessConfig.setTopicPerms(topicPermList);
         }
 
@@ -74,11 +73,7 @@ public class UpdateAccessConfigSubCommandTest {
         if (commandLine.hasOption('g')) {
             String[] groupPerms = 
commandLine.getOptionValue('g').trim().split(";");
             List<String> groupPermList = new ArrayList<String>();
-            if (groupPerms != null) {
-                for (String groupPerm : groupPerms) {
-                    groupPermList.add(groupPerm);
-                }
-            }
+            Collections.addAll(groupPermList, groupPerms);
             accessConfig.setGroupPerms(groupPermList);
         }
 
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateGlobalWhiteAddrSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateGlobalWhiteAddrSubCommandTest.java
index 66d609dfd..33e40a9cb 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateGlobalWhiteAddrSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/UpdateGlobalWhiteAddrSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.acl;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -32,7 +32,8 @@ public class UpdateGlobalWhiteAddrSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-g 10.10.103.*,192.168.0.*", "-c 
default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('g').trim()).isEqualTo("10.10.103.*,192.168.0.*");
         
assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster");
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java
index 1abd8575b..44a275828 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java
@@ -21,8 +21,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.ClientConfig;
 import org.apache.rocketmq.client.exception.MQClientException;
 import org.apache.rocketmq.client.impl.MQClientAPIImpl;
@@ -93,7 +93,8 @@ public class BrokerConsumeStatsSubCommadTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-b 127.0.0.1:10911", "-t 3000", "-l 
5", "-o true"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerStatusSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerStatusSubCommandTest.java
index ad2a76b3a..f734c9d60 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerStatusSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerStatusSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.broker;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.BrokerStatsData;
 import org.apache.rocketmq.common.protocol.body.BrokerStatsItem;
 import org.apache.rocketmq.srvutil.ServerUtil;
@@ -27,14 +27,6 @@ import 
org.apache.rocketmq.tools.command.server.ServerResponseMocker;
 import org.junit.Test;
 
 public class BrokerStatusSubCommandTest extends ServerResponseMocker {
-
-    private static final int PORT = 45678;
-
-    @Override
-    protected int getPort() {
-        return PORT;
-    }
-
     @Override
     protected byte[] getBody() {
         BrokerStatsData brokerStatsData = new BrokerStatsData();
@@ -47,9 +39,10 @@ public class BrokerStatusSubCommandTest extends 
ServerResponseMocker {
     public void testExecute() throws SubCommandException {
         BrokerStatusSubCommand cmd = new BrokerStatusSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-b 127.0.0.1:" + PORT, "-c 
default-cluster"};
+        String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
 
         cmd.execute(commandLine, options, null);
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanExpiredCQSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanExpiredCQSubCommandTest.java
index a5c070bf9..7fc45362b 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanExpiredCQSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanExpiredCQSubCommandTest.java
@@ -17,22 +17,14 @@
 package org.apache.rocketmq.tools.command.broker;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.ServerResponseMocker;
 import org.junit.Test;
 
 public class CleanExpiredCQSubCommandTest extends ServerResponseMocker {
-
-    private static final int PORT = 45678;
-
-    @Override
-    protected int getPort() {
-        return PORT;
-    }
-
     @Override
     protected byte[] getBody() {
         return null;
@@ -42,9 +34,10 @@ public class CleanExpiredCQSubCommandTest extends 
ServerResponseMocker {
     public void testExecute() throws SubCommandException {
         CleanExpiredCQSubCommand cmd = new CleanExpiredCQSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-b 127.0.0.1:" + PORT, "-c 
default-cluster"};
+        String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanUnusedTopicCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanUnusedTopicCommandTest.java
index 91145e725..630281841 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanUnusedTopicCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/CleanUnusedTopicCommandTest.java
@@ -17,20 +17,14 @@
 package org.apache.rocketmq.tools.command.broker;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.ServerResponseMocker;
 import org.junit.Test;
 
 public class CleanUnusedTopicCommandTest extends ServerResponseMocker {
-
-    @Override
-    protected int getPort() {
-        return 0;
-    }
-
     @Override
     protected byte[] getBody() {
         return null;
@@ -42,7 +36,8 @@ public class CleanUnusedTopicCommandTest extends 
ServerResponseMocker {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/DeleteExpiredCommitLogSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/DeleteExpiredCommitLogSubCommandTest.java
index 61b3acaa5..38f725085 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/DeleteExpiredCommitLogSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/DeleteExpiredCommitLogSubCommandTest.java
@@ -19,8 +19,8 @@ package org.apache.rocketmq.tools.command.broker;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.ServerResponseMocker;
@@ -31,8 +31,6 @@ import org.junit.Test;
 
 public class DeleteExpiredCommitLogSubCommandTest extends ServerResponseMocker 
{
 
-    private static final int PORT = 45678;
-
     private final ByteArrayOutputStream outContent = new 
ByteArrayOutputStream();
     private final ByteArrayOutputStream errContent = new 
ByteArrayOutputStream();
     private final PrintStream originalOut = System.out;
@@ -50,11 +48,6 @@ public class DeleteExpiredCommitLogSubCommandTest extends 
ServerResponseMocker {
         System.setErr(originalErr);
     }
 
-    @Override
-    protected int getPort() {
-        return PORT;
-    }
-
     @Override
     protected byte[] getBody() {
         return null;
@@ -64,9 +57,9 @@ public class DeleteExpiredCommitLogSubCommandTest extends 
ServerResponseMocker {
     public void testExecute() throws SubCommandException {
         DeleteExpiredCommitLogSubCommand cmd = new 
DeleteExpiredCommitLogSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-b 127.0.0.1:" + PORT, "-c 
default-cluster"};
+        String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster"};
         final CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
cmd.commandName(), subargs,
-            cmd.buildCommandlineOptions(options), new PosixParser());
+            cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
         Assert.assertTrue(outContent.toString().startsWith("success"));
         Assert.assertEquals("", errContent.toString());
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/GetBrokerConfigCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/GetBrokerConfigCommandTest.java
index 7673a7827..9b44e4c11 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/GetBrokerConfigCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/GetBrokerConfigCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.broker;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.MixAll;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
@@ -28,16 +28,8 @@ import org.junit.Test;
 import java.io.UnsupportedEncodingException;
 import java.util.Properties;
 
-
 public class GetBrokerConfigCommandTest extends ServerResponseMocker {
 
-    private static final int PORT = 45678;
-
-    @Override
-    protected int getPort() {
-        return PORT;
-    }
-
     @Override
     protected byte[] getBody() {
         StringBuilder sb = new StringBuilder();
@@ -57,9 +49,10 @@ public class GetBrokerConfigCommandTest extends 
ServerResponseMocker {
     public void testExecute() throws SubCommandException {
         GetBrokerConfigCommand cmd = new GetBrokerConfigCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-b 127.0.0.1:" + PORT, "-c 
default-cluster"};
+        String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommandTest.java
index 9e9bc789d..335dd2ebb 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommandTest.java
@@ -18,8 +18,8 @@ package org.apache.rocketmq.tools.command.broker;
 
 import java.lang.reflect.Field;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.ClientConfig;
 import org.apache.rocketmq.client.exception.MQBrokerException;
 import org.apache.rocketmq.client.exception.MQClientException;
@@ -72,7 +72,8 @@ public class SendMsgStatusCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-b 127.0.0.1:10911", "-s 1024 -c 
10"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         //cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/UpdateBrokerConfigSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/UpdateBrokerConfigSubCommandTest.java
index 120ab9e39..d25cf1937 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/UpdateBrokerConfigSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/UpdateBrokerConfigSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.broker;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.ServerResponseMocker;
@@ -26,13 +26,6 @@ import org.junit.Test;
 
 public class UpdateBrokerConfigSubCommandTest extends ServerResponseMocker {
 
-    private static final int PORT = 45678;
-
-    @Override
-    protected int getPort() {
-        return PORT;
-    }
-
     @Override
     protected byte[] getBody() {
         return null;
@@ -42,9 +35,10 @@ public class UpdateBrokerConfigSubCommandTest extends 
ServerResponseMocker {
     public void testExecute() throws SubCommandException {
         UpdateBrokerConfigSubCommand cmd = new UpdateBrokerConfigSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-b 127.0.0.1:" + PORT, "-c 
default-cluster", "-k topicname", "-v unit_test"};
+        String[] subargs = new String[] {"-b 127.0.0.1:" + listenPort(), "-c 
default-cluster", "-k topicname", "-v unit_test"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ConsumerConnectionSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ConsumerConnectionSubCommandTest.java
index 6ad311ad2..7773eac9f 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ConsumerConnectionSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ConsumerConnectionSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.connection;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.Connection;
 import org.apache.rocketmq.common.protocol.body.ConsumerConnection;
 import org.apache.rocketmq.srvutil.ServerUtil;
@@ -34,11 +34,6 @@ import java.util.HashSet;
 import static org.mockito.Mockito.mock;
 
 public class ConsumerConnectionSubCommandTest {
-
-    private static final int NAME_SERVER_PORT = 45677;
-
-    private static final int BROKER_PORT = 45676;
-
     private ServerResponseMocker brokerMocker;
 
     private ServerResponseMocker nameServerMocker;
@@ -46,7 +41,7 @@ public class ConsumerConnectionSubCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = 
NameServerMocker.startByDefaultConf(NAME_SERVER_PORT, BROKER_PORT);
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -59,9 +54,9 @@ public class ConsumerConnectionSubCommandTest {
     public void testExecute() throws SubCommandException {
         ConsumerConnectionSubCommand cmd = new ConsumerConnectionSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-g default-consumer-group"};
+        String[] subargs = new String[] {"-g default-consumer-group", "-b 
localhost:" + brokerMocker.listenPort()};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -72,8 +67,7 @@ public class ConsumerConnectionSubCommandTest {
         connectionSet.add(connection);
         consumerConnection.setConnectionSet(connectionSet);
         // start broker
-        return ServerResponseMocker.startServer(BROKER_PORT, 
consumerConnection.encode());
+        return ServerResponseMocker.startServer(consumerConnection.encode());
     }
 
-
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ProducerConnectionSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ProducerConnectionSubCommandTest.java
index c44ea3acb..001148148 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ProducerConnectionSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/connection/ProducerConnectionSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.connection;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.Connection;
 import org.apache.rocketmq.common.protocol.body.ProducerConnection;
 import org.apache.rocketmq.srvutil.ServerUtil;
@@ -42,7 +42,7 @@ public class ProducerConnectionSubCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -57,7 +57,8 @@ public class ProducerConnectionSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-g default-producer-group", "-t 
unit-test", String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -69,6 +70,6 @@ public class ProducerConnectionSubCommandTest {
         producerConnection.setConnectionSet(connectionSet);
 
         // start broker
-        return ServerResponseMocker.startServer(0, 
producerConnection.encode());
+        return ServerResponseMocker.startServer(producerConnection.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerProgressSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerProgressSubCommandTest.java
index 5db2af460..efa8d05ba 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerProgressSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerProgressSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.consumer;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.admin.ConsumeStats;
 import org.apache.rocketmq.common.admin.OffsetWrapper;
 import org.apache.rocketmq.common.message.MessageQueue;
@@ -42,7 +42,7 @@ public class ConsumerProgressSubCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -59,7 +59,8 @@ public class ConsumerProgressSubCommandTest {
         String[] subargs = new String[] {"-g default-group",
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -79,6 +80,6 @@ public class ConsumerProgressSubCommandTest {
         offsetTable.put(messageQueue, offsetWrapper);
         consumeStats.setOffsetTable(offsetTable);
         // start broker
-        return ServerResponseMocker.startServer(0, consumeStats.encode());
+        return ServerResponseMocker.startServer(consumeStats.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerStatusSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerStatusSubCommandTest.java
index e9f19c247..bcd4477f6 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerStatusSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/ConsumerStatusSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.consumer;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.Connection;
 import org.apache.rocketmq.common.protocol.body.ConsumerConnection;
 import org.apache.rocketmq.srvutil.ServerUtil;
@@ -42,7 +42,7 @@ public class ConsumerStatusSubCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -58,7 +58,8 @@ public class ConsumerStatusSubCommandTest {
         String[] subargs = new String[] {"-g default-group", "-i cid_one",
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -69,6 +70,6 @@ public class ConsumerStatusSubCommandTest {
         connectionSet.add(connection);
         consumerConnection.setConnectionSet(connectionSet);
         // start broker
-        return ServerResponseMocker.startServer(0, 
consumerConnection.encode());
+        return ServerResponseMocker.startServer(consumerConnection.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/GetConsumerConfigSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/GetConsumerConfigSubCommandTest.java
index 05aa11df8..fccb12099 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/GetConsumerConfigSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/consumer/GetConsumerConfigSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.consumer;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.ClusterInfo;
 import org.apache.rocketmq.common.protocol.body.Connection;
 import org.apache.rocketmq.common.protocol.body.ConsumerConnection;
@@ -62,7 +62,7 @@ public class GetConsumerConfigSubCommandTest {
         final CommandLine commandLine =
             ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
                 cmd.buildCommandlineOptions(options),
-                new PosixParser());
+                new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -86,7 +86,7 @@ public class GetConsumerConfigSubCommandTest {
         clusterInfo.setClusterAddrTable(clusterAddressTable);
 
         // start name server
-        return ServerResponseMocker.startServer(0, clusterInfo.encode());
+        return ServerResponseMocker.startServer(clusterInfo.encode());
     }
 
     private ServerResponseMocker startOneBroker() {
@@ -96,6 +96,6 @@ public class GetConsumerConfigSubCommandTest {
         connectionSet.add(connection);
         consumerConnection.setConnectionSet(connectionSet);
         // start broker
-        return ServerResponseMocker.startServer(0, 
consumerConnection.encode());
+        return ServerResponseMocker.startServer(consumerConnection.encode());
     }
 }
\ No newline at end of file
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/ConsumeMessageCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/ConsumeMessageCommandTest.java
index 36d46e20d..f6c3b7ce3 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/ConsumeMessageCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/ConsumeMessageCommandTest.java
@@ -19,13 +19,14 @@ package org.apache.rocketmq.tools.command.message;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.lang.reflect.Field;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
 import org.apache.rocketmq.client.consumer.PullResult;
 import org.apache.rocketmq.client.consumer.PullStatus;
@@ -113,11 +114,11 @@ public class ConsumeMessageCommandTest {
         String[] subargs = new String[] {"-t mytopic", "-n localhost:9876"};
         assignPullResult();
         CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(),
-            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new PosixParser());
+            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new DefaultParser());
         consumeMessageCommand.execute(commandLine, options, null);
 
         System.setOut(out);
-        String s = new String(bos.toByteArray());
+        String s = new String(bos.toByteArray(), StandardCharsets.UTF_8);
         Assert.assertTrue(s.contains("Consume ok"));
     }
 
@@ -129,11 +130,12 @@ public class ConsumeMessageCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
 
         String[] subargs = new String[] {"-t mytopic", "-b localhost", "-i 0", 
"-n localhost:9876"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(), subargs, 
consumeMessageCommand.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(),
+            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new DefaultParser());
         assignPullResult();
         consumeMessageCommand.execute(commandLine, options, null);
         System.setOut(out);
-        String s = new String(bos.toByteArray());
+        String s = new String(bos.toByteArray(), StandardCharsets.UTF_8);
         Assert.assertTrue(s.contains("Consume ok"));
     }
 
@@ -151,12 +153,12 @@ public class ConsumeMessageCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t topic-not-existu", "-n 
localhost:9876"};
         CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(),
-            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new PosixParser());
+            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new DefaultParser());
         consumeMessageCommand.execute(commandLine, options, null);
 
         System.setOut(out);
-        String s = new String(bos.toByteArray());
-        Assert.assertTrue(!s.contains("Consume ok"));
+        String s = new String(bos.toByteArray(), StandardCharsets.UTF_8);
+        Assert.assertFalse(s.contains("Consume ok"));
     }
 
     @Test
@@ -173,11 +175,12 @@ public class ConsumeMessageCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
 
         String[] subargs = new String[] {"-t mytopic", "-b localhost", "-i 0", 
"-n localhost:9876"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(), subargs, 
consumeMessageCommand.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
consumeMessageCommand.commandName(),
+            subargs, consumeMessageCommand.buildCommandlineOptions(options), 
new DefaultParser());
         consumeMessageCommand.execute(commandLine, options, null);
 
         System.setOut(out);
-        String s = new String(bos.toByteArray());
-        Assert.assertTrue(!s.contains("Consume ok"));
+        String s = new String(bos.toByteArray(), StandardCharsets.UTF_8);
+        Assert.assertFalse(s.contains("Consume ok"));
     }
 }
\ No newline at end of file
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgByUniqueKeySubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgByUniqueKeySubCommandTest.java
index 22f502ac7..c47a39f99 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgByUniqueKeySubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgByUniqueKeySubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.message;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.ClientConfig;
 import org.apache.rocketmq.client.QueryResult;
 import org.apache.rocketmq.client.exception.MQBrokerException;
@@ -197,7 +197,8 @@ public class QueryMsgByUniqueKeySubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
 
         String[] args = new String[] {"-t myTopicTest", "-i msgId"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args,
+            cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
 
     }
@@ -220,7 +221,8 @@ public class QueryMsgByUniqueKeySubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
 
         String[] args = new String[] {"-t myTopicTest", "-i 
7F000001000004D20000000000000066"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args,
+            cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
 
     }
@@ -231,7 +233,8 @@ public class QueryMsgByUniqueKeySubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
 
         String[] args = new String[] {"-t myTopicTest", "-i 
0A3A54F7BF7D18B4AAC28A3FA2CF0000", "-g producerGroupName", "-d clientId"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args,
+            cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -242,11 +245,13 @@ public class QueryMsgByUniqueKeySubCommandTest {
 
         String[] args = new String[]{"-t myTopicTest", "-i 
0A3A54F7BF7D18B4AAC28A3FA2CF0000"};
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin ", args,
+            cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
 
         args = new String[] {"-t myTopicTest", "-i 
0A3A54F7BF7D18B4AAC28A3FA2CF0000", "-g producerGroupName", "-d clientId"};
-        commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options), new PosixParser());
+        commandLine = ServerUtil.parseCmdLine("mqadmin ", args, 
cmd.buildCommandlineOptions(options),
+            new DefaultParser());
         cmd.execute(commandLine, options, null);
 
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgTraceByIdSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgTraceByIdSubCommandTest.java
index dbfa86c9e..e300ed357 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgTraceByIdSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/QueryMsgTraceByIdSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.message;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.message.MessageDecoder;
 import org.apache.rocketmq.common.message.MessageExt;
 import org.apache.rocketmq.common.protocol.route.BrokerData;
@@ -65,7 +65,8 @@ public class QueryMsgTraceByIdSubCommandTest {
         String[] subargs = new String[] {String.format("-i %s", MSG_ID),
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs, cmd.buildCommandlineOptions(options), new PosixParser());
+                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs,
+                    cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -89,7 +90,7 @@ public class QueryMsgTraceByIdSubCommandTest {
         queueDatas.add(queueData);
         topicRouteData.setQueueDatas(queueDatas);
 
-        return ServerResponseMocker.startServer(0, topicRouteData.encode());
+        return ServerResponseMocker.startServer(topicRouteData.encode());
     }
 
     private ServerResponseMocker startOneBroker() {
@@ -107,7 +108,7 @@ public class QueryMsgTraceByIdSubCommandTest {
             extMap.put("indexLastUpdateTimestamp", 
String.valueOf(System.currentTimeMillis()));
             extMap.put("indexLastUpdatePhyoffset", 
String.valueOf(System.currentTimeMillis()));
             // start broker
-            return ServerResponseMocker.startServer(0, body, extMap);
+            return ServerResponseMocker.startServer(body, extMap);
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException(e);
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/SendMessageCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/SendMessageCommandTest.java
index e4c6673d0..ada3132df 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/message/SendMessageCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/message/SendMessageCommandTest.java
@@ -18,8 +18,8 @@
 package org.apache.rocketmq.tools.command.message;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.exception.MQBrokerException;
 import org.apache.rocketmq.client.exception.MQClientException;
 import org.apache.rocketmq.client.producer.DefaultMQProducer;
@@ -77,11 +77,13 @@ public class SendMessageCommandTest {
         System.setOut(new PrintStream(bos));
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t mytopic","-p 'send message 
test'","-c tagA","-k order-16546745756"};
-        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
sendMessageCommand.commandName(), subargs, 
sendMessageCommand.buildCommandlineOptions(options), new PosixParser());
+        CommandLine commandLine = ServerUtil.parseCmdLine("mqadmin " + 
sendMessageCommand.commandName(),
+            subargs, sendMessageCommand.buildCommandlineOptions(options), new 
DefaultParser());
         sendMessageCommand.execute(commandLine, options, null);
 
         subargs = new String[] {"-t mytopic","-p 'send message test'","-c 
tagA","-k order-16546745756","-b brokera","-i 1"};
-        commandLine = ServerUtil.parseCmdLine("mqadmin " + 
sendMessageCommand.commandName(), subargs, 
sendMessageCommand.buildCommandlineOptions(options), new PosixParser());
+        commandLine = ServerUtil.parseCmdLine("mqadmin " + 
sendMessageCommand.commandName(), subargs,
+            sendMessageCommand.buildCommandlineOptions(options), new 
DefaultParser());
         sendMessageCommand.execute(commandLine, options, null);
         System.setOut(out);
         String s = new String(bos.toByteArray());
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/AddWritePermSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/AddWritePermSubCommandTest.java
index c65a6c3d9..5de41a248 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/AddWritePermSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/AddWritePermSubCommandTest.java
@@ -17,8 +17,9 @@
 package org.apache.rocketmq.tools.command.namesrv;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
+import org.apache.rocketmq.common.MixAll;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.NameServerMocker;
@@ -31,10 +32,6 @@ import java.util.HashMap;
 
 public class AddWritePermSubCommandTest {
 
-    private static final int NAME_SERVER_PORT = 45677;
-
-    private static final int BROKER_PORT = 45676;
-
     private ServerResponseMocker brokerMocker;
 
     private ServerResponseMocker nameServerMocker;
@@ -43,6 +40,7 @@ public class AddWritePermSubCommandTest {
     public void before() {
         brokerMocker = startOneBroker();
         nameServerMocker = startNameServer();
+        System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, "localhost:" + 
nameServerMocker.listenPort());
     }
 
     @After
@@ -57,7 +55,8 @@ public class AddWritePermSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[]{"-b default-broker"};
         final CommandLine commandLine =
-                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs, cmd.buildCommandlineOptions(options), new PosixParser());
+                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs,
+                    cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -65,11 +64,11 @@ public class AddWritePermSubCommandTest {
         HashMap<String, String> extMap = new HashMap<>();
         extMap.put("addTopicCount", "1");
         // start name server
-        return NameServerMocker.startByDefaultConf(NAME_SERVER_PORT, 
BROKER_PORT, extMap);
+        return NameServerMocker.startByDefaultConf(brokerMocker.listenPort(), 
extMap);
     }
 
     private ServerResponseMocker startOneBroker() {
         // start broker
-        return ServerResponseMocker.startServer(BROKER_PORT, null);
+        return ServerResponseMocker.startServer(null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/GetNamesrvConfigCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/GetNamesrvConfigCommandTest.java
index e94aba922..c553623f6 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/GetNamesrvConfigCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/GetNamesrvConfigCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.namesrv;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.server.NameServerMocker;
 import org.apache.rocketmq.tools.command.server.ServerResponseMocker;
@@ -28,10 +28,6 @@ import org.junit.Test;
 
 public class GetNamesrvConfigCommandTest {
 
-    private static final int NAME_SERVER_PORT = 45677;
-
-    private static final int BROKER_PORT = 45676;
-
     private ServerResponseMocker brokerMocker;
 
     private ServerResponseMocker nameServerMocker;
@@ -39,7 +35,7 @@ public class GetNamesrvConfigCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = 
NameServerMocker.startByDefaultConf(NAME_SERVER_PORT, BROKER_PORT);
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -52,15 +48,16 @@ public class GetNamesrvConfigCommandTest {
     public void testExecute() throws Exception {
         GetNamesrvConfigCommand cmd = new GetNamesrvConfigCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {};
+        String[] subargs = new String[] {"-n localhost:" + 
nameServerMocker.listenPort()};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
 
         cmd.execute(commandLine, options, null);
     }
 
     private ServerResponseMocker startOneBroker() {
         // start broker
-        return ServerResponseMocker.startServer(BROKER_PORT, null);
+        return ServerResponseMocker.startServer(null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/UpdateKvConfigCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/UpdateKvConfigCommandTest.java
index 9dac57dea..9cc7b4fed 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/UpdateKvConfigCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/UpdateKvConfigCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.namesrv;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.NameServerMocker;
@@ -35,7 +35,7 @@ public class UpdateKvConfigCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -48,15 +48,17 @@ public class UpdateKvConfigCommandTest {
     public void testExecute() throws SubCommandException {
         UpdateKvConfigCommand cmd = new UpdateKvConfigCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[]{"-s namespace", "-k topicname", "-v 
unit_test",
+        String[] subargs = new String[] {
+            "-s namespace", "-k topicname", "-v unit_test",
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName() + 
cmd.commandDesc(), subargs, cmd.buildCommandlineOptions(options), new 
PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName() + 
cmd.commandDesc(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
     private ServerResponseMocker startOneBroker() {
         // start broker
-        return ServerResponseMocker.startServer(0, null);
+        return ServerResponseMocker.startServer(null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/WipeWritePermSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/WipeWritePermSubCommandTest.java
index b065c31d1..2a70f540f 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/WipeWritePermSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/namesrv/WipeWritePermSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.namesrv;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
 import org.apache.rocketmq.tools.command.server.NameServerMocker;
@@ -30,11 +30,6 @@ import org.junit.Test;
 import java.util.HashMap;
 
 public class WipeWritePermSubCommandTest {
-
-    private static final int NAME_SERVER_PORT = 45677;
-
-    private static final int BROKER_PORT = 45676;
-
     private ServerResponseMocker brokerMocker;
 
     private ServerResponseMocker nameServerMocker;
@@ -57,7 +52,8 @@ public class WipeWritePermSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-b default-broker"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -65,13 +61,13 @@ public class WipeWritePermSubCommandTest {
         HashMap<String, String> extMap = new HashMap<>();
         extMap.put("wipeTopicCount", "1");
         // start name server
-        return NameServerMocker.startByDefaultConf(NAME_SERVER_PORT, 
BROKER_PORT, extMap);
+        return NameServerMocker.startByDefaultConf(brokerMocker.listenPort(), 
extMap);
     }
 
     private ServerResponseMocker startOneBroker() {
         // start broker
         HashMap<String, String> extMap = new HashMap<>();
         extMap.put("wipeTopicCount", "1");
-        return ServerResponseMocker.startServer(BROKER_PORT, new byte[0], 
extMap);
+        return ServerResponseMocker.startServer(new byte[0], extMap);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/GetConsumerStatusCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/GetConsumerStatusCommandTest.java
index 21bb1820d..3433b5338 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/GetConsumerStatusCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/GetConsumerStatusCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.offset;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.GetConsumerStatusBody;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
@@ -43,7 +43,7 @@ public class GetConsumerStatusCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -59,13 +59,14 @@ public class GetConsumerStatusCommandTest {
         String[] subargs = new String[] {"-g default-group", "-t unit-test", 
"-i clientid",
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
     private ServerResponseMocker startOneBroker() {
         GetConsumerStatusBody getConsumerStatusBody = new 
GetConsumerStatusBody();
         // start broker
-        return ServerResponseMocker.startServer(0, 
getConsumerStatusBody.encode());
+        return 
ServerResponseMocker.startServer(getConsumerStatusBody.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommandTest.java
index 8ea29f0fb..34b44b3c1 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.offset;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.protocol.body.ResetOffsetBody;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.apache.rocketmq.tools.command.SubCommandException;
@@ -37,7 +37,7 @@ public class ResetOffsetByTimeCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = NameServerMocker.startByDefaultConf(0, 
brokerMocker.listenPort());
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -50,16 +50,18 @@ public class ResetOffsetByTimeCommandTest {
     public void testExecute() throws SubCommandException {
         ResetOffsetByTimeCommand cmd = new ResetOffsetByTimeCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[] {"-g default-group", "-t unit-test", 
"-s 1412131213231", "-f false",
+        String[] subargs = new String[] {
+            "-g default-group", "-t unit-test", "-s 1412131213231", "-f false",
             String.format("-n localhost:%d", nameServerMocker.listenPort())};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
     private ServerResponseMocker startOneBroker() {
         ResetOffsetBody resetOffsetBody = new ResetOffsetBody();
         // start broker
-        return ServerResponseMocker.startServer(0, resetOffsetBody.encode());
+        return ServerResponseMocker.startServer(resetOffsetBody.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeOldCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeOldCommandTest.java
index c172c7edb..fb5c5437d 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeOldCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeOldCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.offset;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class ResetOffsetByTimeOldCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-g default-group", "-t unit-test", 
"-s 1412131213231", "-f false"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('g').trim()).isEqualTo("default-group");
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
         
assertThat(commandLine.getOptionValue('s').trim()).isEqualTo("1412131213231");
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/SkipAccumulationCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/SkipAccumulationCommandTest.java
index 38c23a3e8..36534f9bb 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/offset/SkipAccumulationCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/offset/SkipAccumulationCommandTest.java
@@ -18,8 +18,8 @@ package org.apache.rocketmq.tools.command.offset;
 
 import java.lang.reflect.Field;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.client.ClientConfig;
 import org.apache.rocketmq.client.impl.MQClientAPIImpl;
 import org.apache.rocketmq.client.impl.MQClientManager;
@@ -71,7 +71,8 @@ public class SkipAccumulationCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-g group-test", "-t topic-test", "-f 
false"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/producer/ProducerSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/producer/ProducerSubCommandTest.java
index 6d6cc93ab..13290911b 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/producer/ProducerSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/producer/ProducerSubCommandTest.java
@@ -18,8 +18,8 @@
 package org.apache.rocketmq.tools.command.producer;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.common.admin.ConsumeStats;
 import org.apache.rocketmq.common.admin.OffsetWrapper;
 import org.apache.rocketmq.common.message.MessageQueue;
@@ -34,10 +34,6 @@ import org.junit.Test;
 import java.util.HashMap;
 
 public class ProducerSubCommandTest {
-    private static final int NAME_SERVER_PORT = 45677;
-
-    private static final int BROKER_PORT = 45676;
-
     private ServerResponseMocker brokerMocker;
 
     private ServerResponseMocker nameServerMocker;
@@ -45,7 +41,7 @@ public class ProducerSubCommandTest {
     @Before
     public void before() {
         brokerMocker = startOneBroker();
-        nameServerMocker = 
NameServerMocker.startByDefaultConf(NAME_SERVER_PORT, BROKER_PORT);
+        nameServerMocker = 
NameServerMocker.startByDefaultConf(brokerMocker.listenPort());
     }
 
     @After
@@ -58,9 +54,10 @@ public class ProducerSubCommandTest {
     public void testExecute() throws SubCommandException {
         ProducerSubCommand cmd = new ProducerSubCommand();
         Options options = ServerUtil.buildCommandlineOptions(new Options());
-        String[] subargs = new String[]{"-b 127.0.0.1:" + BROKER_PORT};
+        String[] subargs = new String[]{"-b 127.0.0.1:" + 
brokerMocker.listenPort()};
         final CommandLine commandLine =
-                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs, cmd.buildCommandlineOptions(options), new PosixParser());
+                ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), 
subargs,
+                    cmd.buildCommandlineOptions(options), new DefaultParser());
         cmd.execute(commandLine, options, null);
     }
 
@@ -80,6 +77,6 @@ public class ProducerSubCommandTest {
         offsetTable.put(messageQueue, offsetWrapper);
         consumeStats.setOffsetTable(offsetTable);
         // start broker
-        return ServerResponseMocker.startServer(BROKER_PORT, 
consumeStats.encode());
+        return ServerResponseMocker.startServer(consumeStats.encode());
     }
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/NameServerMocker.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/NameServerMocker.java
index 32718f1c3..5f0d2d544 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/NameServerMocker.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/NameServerMocker.java
@@ -16,7 +16,6 @@
  */
 package org.apache.rocketmq.tools.command.server;
 
-import org.apache.rocketmq.common.MixAll;
 import org.apache.rocketmq.common.protocol.route.BrokerData;
 import org.apache.rocketmq.common.protocol.route.TopicRouteData;
 
@@ -32,26 +31,21 @@ public class NameServerMocker {
     /**
      * use the specified port to start the nameserver
      *
-     * @param nameServerPort    nameServer port
-     * @param brokerPort    broker port
-     * @return  ServerResponseMocker
+     * @param brokerPort broker port
+     * @return ServerResponseMocker
      */
-    public static ServerResponseMocker startByDefaultConf(int nameServerPort, 
int brokerPort) {
-        return startByDefaultConf(nameServerPort, brokerPort, null);
+    public static ServerResponseMocker startByDefaultConf(int brokerPort) {
+        return startByDefaultConf(brokerPort, null);
     }
 
     /**
      * use the specified port to start the nameserver
      *
-     * @param nameServerPort    nameServer port
-     * @param brokerPort    broker port
-     * @param extMap    extend config
-     * @return  ServerResponseMocker
+     * @param brokerPort broker port
+     * @param extMap     extend config
+     * @return ServerResponseMocker
      */
-    public static ServerResponseMocker startByDefaultConf(int nameServerPort, 
int brokerPort,
-                                                          HashMap<String, 
String> extMap) {
-
-        System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, "127.0.0.1:" + 
nameServerPort);
+    public static ServerResponseMocker startByDefaultConf(int brokerPort, 
HashMap<String, String> extMap) {
         TopicRouteData topicRouteData = new TopicRouteData();
         List<BrokerData> dataList = new ArrayList<>();
         HashMap<Long, String> brokerAddress = new HashMap<>();
@@ -61,7 +55,7 @@ public class NameServerMocker {
         dataList.add(brokerData);
         topicRouteData.setBrokerDatas(dataList);
         // start name server
-        return ServerResponseMocker.startServer(nameServerPort, 
topicRouteData.encode(), extMap);
+        return ServerResponseMocker.startServer(topicRouteData.encode(), 
extMap);
     }
 
 }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
index f1724c94d..01cc5a233 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
@@ -74,8 +74,6 @@ public abstract class ServerResponseMocker {
         }
     }
 
-    protected abstract int getPort();
-
     public int listenPort() {
         return listenPort;
     }
@@ -110,7 +108,7 @@ public abstract class ServerResponseMocker {
                     }
                 });
         try {
-            ChannelFuture sync = serverBootstrap.bind(getPort()).sync();
+            ChannelFuture sync = serverBootstrap.bind(0).sync();
             InetSocketAddress addr = (InetSocketAddress) 
sync.channel().localAddress();
             this.listenPort = addr.getPort();
         } catch (InterruptedException e1) {
@@ -141,18 +139,13 @@ public abstract class ServerResponseMocker {
         }
     }
 
-    public static ServerResponseMocker startServer(int port, byte[] body) {
-        return startServer(port, body, null);
+    public static ServerResponseMocker startServer(byte[] body) {
+        return startServer(body, null);
     }
 
 
-    public static ServerResponseMocker startServer(int port, byte[] body, 
HashMap<String, String> extMap) {
+    public static ServerResponseMocker startServer(byte[] body, 
HashMap<String, String> extMap) {
         ServerResponseMocker mocker = new ServerResponseMocker() {
-            @Override
-            protected int getPort() {
-                return port;
-            }
-
             @Override
             protected byte[] getBody() {
                 return body;
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/AllocateMQSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/AllocateMQSubCommandTest.java
index f3091419c..2d9fb7393 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/AllocateMQSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/AllocateMQSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class AllocateMQSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test", "-i 127.0.0.1:10911"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
         
assertThat(commandLine.getOptionValue("i").trim()).isEqualTo("127.0.0.1:10911");
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/DeleteTopicSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/DeleteTopicSubCommandTest.java
index 4539c0a09..ac3720431 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/DeleteTopicSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/DeleteTopicSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class DeleteTopicSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test", "-c default-cluster"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
         
assertThat(commandLine.getOptionValue("c").trim()).isEqualTo("default-cluster");
     }
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicClusterSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicClusterSubCommandTest.java
index 4a1bd5fd8..d4b54c59c 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicClusterSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicClusterSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class TopicClusterSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
     }
 }
\ No newline at end of file
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicRouteSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicRouteSubCommandTest.java
index 8c02ddaa9..26a6c79ba 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicRouteSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicRouteSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class TopicRouteSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
     }
 }
\ No newline at end of file
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicStatusSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicStatusSubCommandTest.java
index 3b389a674..d56e7196e 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicStatusSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/TopicStatusSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class TopicStatusSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
     }
 }
\ No newline at end of file
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateOrderConfCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateOrderConfCommandTest.java
index 632e9b62e..dfc3941ac 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateOrderConfCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateOrderConfCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class UpdateOrderConfCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-t unit-test", "-v 
default-broker:8", "-m post"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
         
assertThat(commandLine.getOptionValue('v').trim()).isEqualTo("default-broker:8");
         assertThat(commandLine.getOptionValue('m').trim()).isEqualTo("post");
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicPermSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicPermSubCommandTest.java
index f147a5523..ed642e887 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicPermSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicPermSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -31,7 +31,8 @@ public class UpdateTopicPermSubCommandTest {
         Options options = ServerUtil.buildCommandlineOptions(new Options());
         String[] subargs = new String[] {"-b 127.0.0.1:10911", "-c 
default-cluster", "-t unit-test", "-p 6"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs,
+                cmd.buildCommandlineOptions(options), new DefaultParser());
         
assertThat(commandLine.getOptionValue('b').trim()).isEqualTo("127.0.0.1:10911");
         
assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster");
         
assertThat(commandLine.getOptionValue('t').trim()).isEqualTo("unit-test");
diff --git 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicSubCommandTest.java
 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicSubCommandTest.java
index 7e7863f6d..54c690ecb 100644
--- 
a/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicSubCommandTest.java
+++ 
b/tools/src/test/java/org/apache/rocketmq/tools/command/topic/UpdateTopicSubCommandTest.java
@@ -17,8 +17,8 @@
 package org.apache.rocketmq.tools.command.topic;
 
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.PosixParser;
 import org.apache.rocketmq.srvutil.ServerUtil;
 import org.junit.Test;
 
@@ -39,7 +39,8 @@ public class UpdateTopicSubCommandTest {
             "-u false",
             "-s false"};
         final CommandLine commandLine =
-            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, 
cmd.buildCommandlineOptions(options), new PosixParser());
+            ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(),
+                subargs, cmd.buildCommandlineOptions(options), new 
DefaultParser());
         
assertThat(commandLine.getOptionValue('b').trim()).isEqualTo("127.0.0.1:10911");
         assertThat(commandLine.getOptionValue('r').trim()).isEqualTo("8");
         assertThat(commandLine.getOptionValue('w').trim()).isEqualTo("8");


Reply via email to