diff --git a/Jenkinsfile-ecord-global b/Jenkinsfile-ecord-global
index 431df57..8351f9d 100644
--- a/Jenkinsfile-ecord-global
+++ b/Jenkinsfile-ecord-global
@@ -63,15 +63,16 @@
         try {
             sh """
             if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
+            mkdir RobotLogs/TestDoc || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/Log/* ./RobotLogs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDocs || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDoc || true
             """
             step([$class: 'RobotPublisher',
                 disableArchiveOutput: false,
                 logFileName: 'RobotLogs/log*.html',
-                otherFiles: 'RobotLogs/TestDocs/*.html',
+                otherFiles: 'RobotLogs/TestDoc/*.html',
                 outputFileName: 'RobotLogs/output*.xml',
                 outputPath: '.',
                 passThreshold: 100,
diff --git a/Jenkinsfile-ecord-local b/Jenkinsfile-ecord-local
index b2737d1..28ab7cb 100644
--- a/Jenkinsfile-ecord-local
+++ b/Jenkinsfile-ecord-local
@@ -90,17 +90,18 @@
         try {
             sh """
             if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
+            mkdir RobotLogs/TestDoc || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/Log/* ./RobotLogs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDocs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDocs || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDoc || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDoc || true
 
             """
             step([$class: 'RobotPublisher',
                 disableArchiveOutput: false,
                 logFileName: 'RobotLogs/log*.html',
-                otherFiles: 'RobotLogs/TestDocs/*.html',
+                otherFiles: 'RobotLogs/TestDoc/*.html',
                 outputFileName: 'RobotLogs/output*.xml',
                 outputPath: '.',
                 passThreshold: 100,
diff --git a/Jenkinsfile-mcord b/Jenkinsfile-mcord
index f336625..62a2d31 100644
--- a/Jenkinsfile-mcord
+++ b/Jenkinsfile-mcord
@@ -90,16 +90,17 @@
         try {
             sh """
             if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
+            mkdir RobotLogs/TestDoc || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/Log/* ./RobotLogs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDocs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDocs || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDoc || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDoc || true
             """
             step([$class: 'RobotPublisher',
                 disableArchiveOutput: false,
                 logFileName: 'RobotLogs/log*.html',
-                otherFiles: 'RobotLogs/TestDocs/*.html',
+                otherFiles: 'RobotLogs/TestDoc/*.html',
                 outputFileName: 'RobotLogs/output*.xml',
                 outputPath: '.',
                 passThreshold: 100,
diff --git a/Jenkinsfile-rcord b/Jenkinsfile-rcord
index 42817f0..48201ab 100644
--- a/Jenkinsfile-rcord
+++ b/Jenkinsfile-rcord
@@ -156,9 +156,7 @@
                 rm -r Log/ || true
                 rm -r TestDoc/ || true
                 mkdir TestDoc || true
-                ssh-agent bash
-                ssh-add
-                pybot -L TRACE -d Log -T vsg_dataplane_test.robot
+                pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -d Log -T vsg_dataplane_test.robot
                 python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
                 """)
             } catch(error) { currentBuild.result = 'FAILURE' }
@@ -167,20 +165,21 @@
     stage('Publish') {
         try {
             sh """
-            if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
+            if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs;
+            mkdir RobotLogs/TestDoc || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/Log/* ./RobotLogs || true
             scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/vsg/Log/* ./RobotLogs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/TestDoc/* ./RobotLogs/TestDocs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDocs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDocs || true
-            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/vsg/TestDoc/* ./RobotLogs/TestDocs || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/cord-api/TestDoc/* ./RobotLogs/TestDoc || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/robot/TestDoc/* ./RobotLogs/TestDoc || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/diag/TestDoc/* ./RobotLogs/TestDoc || true
+            scp -r ${deployment_config.head.user}@${deployment_config.head.ip}:/opt/cord/test/cord-tester/src/test/vsg/TestDoc/* ./RobotLogs/TestDoc || true
             """
             step([$class: 'RobotPublisher',
                 disableArchiveOutput: false,
                 logFileName: 'RobotLogs/log*.html',
-                otherFiles: 'RobotLogs/TestDocs/*.html',
+                otherFiles: 'RobotLogs/TestDoc/*.html',
                 outputFileName: 'RobotLogs/output*.xml',
                 outputPath: '.',
                 passThreshold: 100,
diff --git a/src/test/setup/calix_fabric_test_netcfg.json b/src/test/setup/calix_fabric_test_netcfg.json
new file mode 100644
index 0000000..de4defd
--- /dev/null
+++ b/src/test/setup/calix_fabric_test_netcfg.json
@@ -0,0 +1,92 @@
+{
+    "devices": {
+        "of:0000480fcfae6e0a": {
+            "segmentrouting": {
+                "name": "device-480fcfae6e0a",
+                "ipv4NodeSid": 100,
+                "ipv4Loopback": "10.6.0.102",
+                "routerMac": "48:0f:cf:ae:6e:0a",
+                "isEdgeRouter": false,
+                "adjacencySids": []
+            }
+        },
+        "of:0000480fcfaedea8": {
+            "segmentrouting": {
+                "name": "device-480fcfaedea8",
+                "ipv4NodeSid": 101,
+                "ipv4Loopback": "10.6.0.104",
+                "routerMac": "48:0f:cf:ae:de:a8",
+                "isEdgeRouter": true,
+                "adjacencySids": []
+            }
+        },
+        "of:0000480fcfae8e12": {
+            "segmentrouting": {
+                "name": "device-480fcfae8e12",
+                "ipv4NodeSid": 102,
+                "ipv4Loopback": "10.6.0.101",
+                "routerMac": "48:0f:cf:ae:8e:12",
+                "isEdgeRouter": false,
+                "adjacencySids": []
+            }
+        },
+        "of:0000480fcfaeeeac": {
+            "segmentrouting": {
+                "name": "device-480fcfaeeeac",
+                "ipv4NodeSid": 103,
+                "ipv4Loopback": "10.6.0.103",
+                "routerMac": "48:0f:cf:ae:ee:ac",
+                "isEdgeRouter": true,
+                "adjacencySids": []
+            }
+        }
+    },
+    "ports": {
+        "of:0000480fcfaedea8/2": {
+            "interfaces": [
+                {
+                    "ips": [ "10.6.2.254/24" ],
+                    "vlan-untagged" : 2
+                }
+            ]
+        },
+        "of:0000480fcfaedea8/1": {
+            "interfaces": [
+                {
+                    "ips": [ "10.6.2.254/24" ],
+                    "vlan-untagged" : 2
+                }
+            ]
+        },
+        "of:0000480fcfaeeeac/1": {
+            "interfaces": [
+                {
+                    "ips": [ "10.6.1.254/24" ],
+                    "vlan-untagged" : 1
+                }
+            ]
+        }
+    },
+    "apps" : {
+        "org.onosproject.segmentrouting" : {
+            "segmentrouting" : {
+                "vRouterMacs" : [ "a4:23:05:06:01:01" ]
+            },
+            "xconnect": {
+              "of:0000480fcfaedea8": [{
+                "vlan": 333,
+                "ports": [1, 2],
+                "name": "vsg-1"
+                },
+                {
+                "vlan": 555,
+                "ports": [1, 2],
+                "name": "vsg-2"},
+                {
+                "vlan": 666,
+                "ports": [1, 2],
+                "name": "vsg-3"}]
+           }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/test/setup/cord-test.py b/src/test/setup/cord-test.py
index 4838e49..e7f3f3a 100755
--- a/src/test/setup/cord-test.py
+++ b/src/test/setup/cord-test.py
@@ -1397,7 +1397,7 @@
     if args.onos_cord:
         #try restoring the onos cord instance
         try:
-            onos_cord = OnosCord(args.onos_ip, args.onos_cord, args.service_profile, args.synchronizer, start = False, skip = test_manifest.skip_onos_restart)
+            onos_cord = OnosCord(args.onos_ip, args.onos_cord, args.service_profile, args.synchronizer, start = False, skip = manifest.skip_onos_restart)
             onos_cord.restore(force = True)
         except Exception as e:
             print(e)
diff --git a/src/test/vsg/vsg_dataplane_test.robot b/src/test/vsg/vsg_dataplane_test.robot
index c57e795..1fb7ebb 100644
--- a/src/test/vsg/vsg_dataplane_test.robot
+++ b/src/test/vsg/vsg_dataplane_test.robot
@@ -13,7 +13,8 @@
 # limitations under the License.
 
 *** Settings ***
-Test Timeout      2 minutes
+Suite Setup       Setup
+Test Timeout      10 minutes
 Documentation     Validates external connectivity from Cord-Tester Container through VSG Subscriber
 Library           OperatingSystem
 Library           SSHLibrary
@@ -23,16 +24,42 @@
 Resource          /opt/cord/test/cord-tester/src/test/cord-api/Framework/utils/utils.robot
 
 *** Variables ***
-${netcfg_file}    qct_fabric_test_netcfg.json
+${pod}              qct-pod1.yml
+${vsg_data_file}    /opt/cord/test/cord-tester/src/test/cord-api/Tests/data/Ch_VoltTenant.json
 
 *** Test Cases ***
+Validate Instances are ACTIVE
+    [Documentation]    Validates that all instances are ACTIVE
+    Wait Until Keyword Succeeds    300s    5s    Instances ACTIVE
+
+Validate Connectivity to All VSGs via Mgmt Interface
+    [Documentation]    Validates that all given vsg instances are reachable through the mgmt interfaces
+    ##Loop through nova ids,  get mgmt ips + compute nodes, ssh into compute node, and validate ping to mgmt_ip
+    : FOR    ${nova_id}    IN    @{nova_ids}
+    \    ${mgmt_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
+    \    ${node}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep :host | awk '{print $4}'
+    \    ${ping_result}=    Run    ssh ubuntu@${node} ping -c 1 ${mgmt_ip}
+    \    Should Contain   ${ping_result}    64 bytes from ${mgmt_ip}
+    \    Should Not Contain    ${ping_result}    100% packet loss
+
+Validate VSG External Connectivity
+    [Documentation]    Validates that the given vsg instances have external connectivity
+    : FOR    ${nova_id}    IN    @{nova_ids}
+    \    ${mgmt_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
+    \    ${node}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep :host | awk '{print $4}'
+    \    Wait Until Keyword Succeeds    300s    5s    Validate Ext Connectivity    ${node}    ${mgmt_ip}
+
 Configure X-Connects for 3 Subscribers
-    [Documentation]    Configures the cross connect on the fabric switch with s-tags for the subscribers created via control-plane tests  on the correct ports
+    [Documentation]    Configures the cross connect on the fabric switch with s-tags for the subscribers created via control-plane tests on the correct ports
+    [Tags]    xconnect
     ${netcfg_init}=    onosUtils.onos_command_execute    onos-fabric    8101    netcfg
     Log    ${netcfg_init}
     Run    http -a onos:rocks DELETE http://onos-fabric:8181/onos/v1/network/configuration/
+    Sleep    5
     Run    http -a onos:rocks POST http://onos-fabric:8181/onos/v1/network/configuration/ < /opt/cord/test/cord-tester/src/test/setup/${netcfg_file}
+    Sleep    5
     Run    http -a onos:rocks DELETE http://onos-fabric:8181/onos/v1/applications/org.onosproject.segmentrouting/active
+    Sleep    5
     Run    http -a onos:rocks POST http://onos-fabric:8181/onos/v1/applications/org.onosproject.segmentrouting/active
     Sleep    5
     ${netcfg}=    onosUtils.onos_command_execute    onos-fabric    8101    netcfg
@@ -40,9 +67,23 @@
     Should Contain    ${netcfg}    vsg-1
     Should Contain    ${netcfg}    vsg-2
     Should Contain    ${netcfg}    vsg-3
-    Should Contain    ${netcfg}    "vlan" : 333
-    Should Contain    ${netcfg}    "vlan" : 555
-    Should Contain    ${netcfg}    "vlan" : 666
+    Should Contain    ${netcfg}    "vlan" : ${s_tags[0]}
+    Should Contain    ${netcfg}    "vlan" : ${s_tags[1]}
+    Should Contain    ${netcfg}    "vlan" : ${s_tags[2]}
+
+Validate VSG External Connectivity Again
+    [Documentation]    Validates that the given vsg instances have external connectivity even after onos-fabric has been re-configured
+    : FOR    ${nova_id}    IN    @{nova_ids}
+    \    ${mgmt_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
+    \    ${node}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep :host | awk '{print $4}'
+    \    Wait Until Keyword Succeeds    300s    5s    Validate Ext Connectivity    ${node}    ${mgmt_ip}
+
+Validate VCPE Containers
+    [Documentation]    Validates that vcpes containers are up in each vsg instance
+    : FOR    ${nova_id}    IN    @{nova_ids}
+    \    ${mgmt_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
+    \    ${node}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep :host | awk '{print $4}'
+    \    Wait Until Keyword Succeeds    800s    5s    Validate VCPE Container is Up    ${node}    ${mgmt_ip}
 
 Get VSG Subscriber and Tags
     [Documentation]    Retrieves compute node connected on leaf-1 and s/c tags for that particular subscriber
@@ -57,9 +98,7 @@
     \    Run Keyword If    '${node}' == '${cnode_on_leaf_1[0]}'    Exit For Loop
     ${mgmt_ip}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep management | awk '{print $5}'
     ## Get s/c tags for vsg
-    Run    ssh-agent bash \r
-    Run    ssh-add
-    ${result}=    Run    ssh -A ubuntu@${cnode_on_leaf_1[0]} ssh ubuntu@${mgmt_ip} sudo docker ps | grep vsg- | awk '{print $10}'
+    ${result}=    Run    ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu ${cnode_on_leaf_1[0]}" ubuntu@${mgmt_ip} "sudo docker ps|grep 'vsg\\|vcpe'" | awk '{print $10}'
     @{tags}=    Split String    ${result}    -
     ${s_tag}=    Set Variable    ${tags[1]}
     ${c_tag}=    Set Variable    ${tags[2]}
@@ -68,10 +107,11 @@
 
 Execute Dataplane Test
     [Documentation]    Configures interfaces on cord-tester container to connect to vsg instance and validates traffic
+    [Tags]    dataplane
     ${i_num}=    Set Variable If
-    ...    '${s_tag}' == '333'    1
-    ...    '${s_tag}' == '555'    2
-    ...    '${s_tag}' == '666'    3
+    ...    '${s_tag}' == '${s_tags[0]}'    1
+    ...    '${s_tag}' == '${s_tags[1]}'    2
+    ...    '${s_tag}' == '${s_tags[2]}'    3
     ${output}=    Run    docker exec cord-tester1 bash -c "sudo echo 'nameserver 192.168.0.1' > /etc/resolv.conf"
     ${output}=    Run    docker exec cord-tester1 bash -c "sudo dhclient vcpe${i_num}.${s_tag}.${c_tag}"
     Sleep    5
@@ -79,4 +119,56 @@
     ${output}=    Run    docker exec cord-tester1 bash -c "ping -c 3 -I vcpe${i_num}.${s_tag}.${c_tag} 8.8.8.8"
     Log To Console    \n ${output}
     Should Contain   ${output}    64 bytes from 8.8.8.8
-    Should Not Contain    ${output}    100% packet loss
\ No newline at end of file
+    Should Not Contain    ${output}    100% packet loss
+
+*** Keywords ***
+Setup
+    [Documentation]    Gets global vars for test suite
+    @{s_tags}=    Create List
+    @{c_tags}=    Create List
+    ${netcfg_file}=    Set Variable If
+    ...    '${pod}' == 'qct-pod1.yml'    qct_fabric_test_netcfg.json
+    ...    '${pod}' == 'flex-pod1.yml'    flex_fabric_test_netcfg.json
+    ...    '${pod}' == 'calix-pod1.yml'    calix_fabric_test_netcfg.json
+    Set Suite Variable    ${netcfg_file}
+    ${voltList} =    utils.jsonToList    ${vsg_data_file}    voltSubscriberInfo
+    Set Suite Variable    ${vlist}    ${voltList}
+    ${voltTenantList} =    Get Variable Value    ${vlist}
+    ${vsg_count}=    Get Length    ${vlist}
+    Set Suite Variable    ${vsg_count}
+    : FOR    ${INDEX}    IN RANGE    0    ${vsg_count}
+    \    ${voltTenantDict}=    utils.listToDict    ${voltTenantList}    ${INDEX}
+    \    ${voltDict}=    Get From Dictionary    ${voltTenantDict}    voltTenant
+    \    ${s_tag}=    Get From Dictionary    ${voltDict}    s_tag
+    \    ${c_tag}=    Get From Dictionary    ${voltDict}    c_tag
+    \    Append To List    ${s_tags}    ${s_tag}
+    \    Append To List    ${c_tags}    ${c_tag}
+    @{nova_ids}=    Wait Until Keyword Succeeds    120s    5s    Validate Number of VSGs    ${vsg_count}
+    Set Suite Variable    @{nova_ids}
+    Set Suite Variable    ${s_tags}
+    Set Suite Variable    ${c_tags}
+
+Validate Number of VSGs
+    [Arguments]    ${count}
+    ${novalist}=    Run    . /opt/cord_profile/admin-openrc.sh; nova list --all-tenants | awk '{print $2}' | grep '[a-z]'
+    Log    ${novalist}
+    @{nova_ids}=    Split To Lines    ${novalist}
+    ${vsgCount}=    Get Length    ${nova_ids}
+    Should Be Equal    ${vsgCount}    ${count}
+    [Return]    @{nova_ids}
+
+Instances ACTIVE
+    : FOR    ${nova_id}    IN    @{nova_ids}
+    \    ${status}=    Run    . /opt/cord_profile/admin-openrc.sh; nova show ${nova_id} | grep status | awk '{print $4}'
+    \    Should Be Equal    ${status}    ACTIVE
+
+Validate Ext Connectivity
+    [Arguments]    ${compute_node}    ${vsg_ip}
+    ${ping_ext_result}=    Run    ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu ${compute_node}" ubuntu@${vsg_ip} "ping -c 3 8.8.8.8"
+    Should Contain   ${ping_ext_result}    64 bytes from 8.8.8.8
+    Should Not Contain    ${ping_ext_result}    100% packet loss
+
+Validate VCPE Container is Up
+    [Arguments]    ${compute_node}    ${vsg_ip}
+    ${docker_containers}=    Run    ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu ${compute_node}" ubuntu@${vsg_ip} sudo docker ps | wc -l
+    Should Not Contain   ${docker_containers}    0
\ No newline at end of file
