self.scenario_cfg = scenario_cfg
         self.context_cfg = context_cfg
         self.intermediate_variables = {}
+        self.pass_flag = True
 
     def setup(self):
         self.director = Director(self.scenario_cfg, self.context_cfg)
             if v == 0:
                 result['sla_pass'] = 0
                 verify_result = False
+                self.pass_flag = False
                 LOG.info(
                     "\033[92m The service process not found in the host \
 envrioment, the HA test case NOT pass")
                 "the HA test case PASS! \033[0m")
         else:
             result['sla_pass'] = 0
+            self.pass_flag = False
             LOG.info(
                 "\033[91m Aoh, the HA test case FAIL,"
                 "please check the detail debug information! \033[0m")
 
     def teardown(self):
         self.director.knockoff()
+
+        assert self.pass_flag, "The HA test case NOT passed"
 
         self.context_cfg = context_cfg
         self.setup_done = False
         self.data = {}
+        self.pass_flag = True
 
     def setup(self):
         """scenario setup"""
         for k, v in self.data.items():
             if v == 0:
                 result['sla_pass'] = 0
+                self.pass_flag = False
                 LOG.info("The service process not found in the host envrioment, \
 the HA test case NOT pass")
                 return
             LOG.info("The HA test case PASS the SLA")
         else:
             result['sla_pass'] = 0
+            self.pass_flag = False
         assert sla_pass is True, "The HA test case NOT pass the SLA"
 
         return
         for attacker in self.attackers:
             attacker.recover()
 
+        assert self.pass_flag, "The HA test case NOT passed"
+
 
 def _test():    # pragma: no cover
     """internal test function"""