--- /dev/null
+---
+
+  tests:
+  - command: ['ansible', 'prepare']
+    output: "prepare ansible env\n"
+
+  - command: ['ansible', 'show']
+    output: "show ansible configuration\n"
+
+  - command: ['ansible', 'status']
+    output: "check connectivity\n"
+
 
--- /dev/null
+---
+
+  tests:
+    - command: ['perftest', 'run']
+      output: "Run a perftest\n"
 
--- /dev/null
+---
+
+  tests:
+    - command: ['suite', 'run']
+      output: "Run a suite\n"
+
 
--- /dev/null
+---
+
+  tests:
+    - command: ['version', 'list']
+      output: "Lists all the different versions\n"
+
+    - command: ['version', 'install', 'Colorado']
+      output: "Install: Colorado\n"
+
+    - command: ['version', 'uninstall', 'Arno']
+      output: "Uninstall: Arno\n"
+
 
+++ /dev/null
-##############################################################################
-# Copyright (c) 2016 ZTE Corp and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import pytest
-from click.testing import CliRunner
-from qtip.cli.entry import cli
-
-
-class TestClass(object):
-
-    @pytest.fixture()
-    def runner(self):
-        return CliRunner()
-
-    def test_prepare(self, runner):
-        result = runner.invoke(cli, ['ansible', 'prepare'])
-        assert result.output == "prepare ansible env\n"
-
-    def test_show(self, runner):
-        result = runner.invoke(cli, ['ansible', 'show'])
-        assert result.output == "show ansible configuration\n"
-
-    def test_status(self, runner):
-        result = runner.invoke(cli, ['ansible', 'status'])
-        assert result.output == "check connectivity\n"
 
--- /dev/null
+import os
+import pytest
+import sys
+import yaml
+
+from click.testing import CliRunner
+from qtip.cli.entry import cli
+
+
+class TestClass(object):
+
+    @pytest.fixture()
+    def runner(self):
+        return CliRunner()
+
+    def test(self, runner):
+        unit = 'ansible'
+        test_file = 'data/helper/' + unit + '.yaml'
+        path = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, test_file)
+
+        with open(path) as trial:
+            content = trial.read()
+            data = yaml.safe_load(content)['tests']
+            if data is None:
+                print("Unit Test does not exist")
+                sys.exit(1)
+            else:
+                for i in range(0, len(data)):
+                    result = runner.invoke(cli, data[i]['command'])
+                    assert result.output == data[i]['output']