浏览代码

新增xml属性:caseFinish。用来判断是否完成脚本,以减少标准错误带来的异常上报。

scbc.sat2 5 年之前
父节点
当前提交
ff4b0e7c8c
共有 1 个文件被更改,包括 18 次插入2 次删除
  1. 18 2
      SATService/SATService/SATExecutor.cpp

+ 18 - 2
SATService/SATService/SATExecutor.cpp

@@ -661,7 +661,9 @@ bool CSATExecutor::ReportCaseResult(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 #endif
 	xmlpath.append("_result.xml");
 	std::vector<STCaseItem> vtCaseItem;
-	GetCaseXMLResult(xmlpath, vtCaseItem);
+	if ( GetCaseXMLResult(xmlpath, vtCaseItem) )
+		pCase->_nExecutionResult = SATHTTP::SUCCESS;
+
 	// 如果测试项空,任务失败;
 	if ( vtCaseItem.size() == 0 ) {
 		// 将默认成功值改为异常;
@@ -905,6 +907,20 @@ bool CSATExecutor::GetCaseXMLResult(std::string xmlpath, std::vector<STCaseItem>
 	
 	if (_tcsicmp(pXmlRoot->Value(), "results") != 0)
 		return false;
+
+	// 获取属性;
+	bool bFinishStatus = false;
+	const tinyxml2::XMLAttribute *pAttr = pXmlRoot->FirstAttribute();
+	while (pAttr) {
+		if (_tcsicmp(pAttr->Name(), "caseFinish") == 0) {
+			// 整个测试项ok;
+			if ( _tcsicmp(pAttr->Value(), _T("1")) == 0 )
+				bFinishStatus = true;
+			break;
+		}
+
+		pAttr = pAttr->Next();
+	}
 	
 	GLOBAL::WriteTextLog(GLOBAL::SAT_EXE, "开始获取测试项内容:%s", xmlpath.c_str());
 	tinyxml2::XMLElement *pXmlElent = pXmlRoot->FirstChildElement();
@@ -952,7 +968,7 @@ bool CSATExecutor::GetCaseXMLResult(std::string xmlpath, std::vector<STCaseItem>
 		pXmlElent = pXmlElent->NextSiblingElement();
 	}
 	
-	return true;
+	return bFinishStatus;
 }
 
 int CSATExecutor::AttachTaskInfo2Buffer(SATPROTO::TaskInfo (&pbuff)[SATPROTO::MAX_TASKS])