⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teststepobjects.cpp

📁 本源码给出了xml解释程序以及基于xml文件内容的数据结构构造示例
💻 CPP
字号:
// TestStepObjects.cpp: implementation of the CTestStepObjects class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CXML2ITEMS.h"
#include "TestStepObjects.h"
#include "XMLFile.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


IMPLEMENT_SERIAL(CTestStepObject, CObject, 0)

CTestStepObject::CTestStepObject()
{

}

CTestStepObject::CTestStepObject(MSXML2::IXMLDOMNodePtr PtrNode)
{
	p_TestStepNode = PtrNode;
}

CTestStepObject::~CTestStepObject()
{
	p_TestStepNode = NULL;
}

void CTestStepObject::FormatMyObject(CString& str)
{
	str.Format(_T("{%s, %s, %s, %s, %s, %s, %s, %s}"),
				(LPCTSTR)m_strSequence,
				(LPCTSTR)m_strStepType,
				(LPCTSTR)m_strStepNo, 
				(LPCTSTR)m_strStepName, 
				(LPCTSTR)m_strStepDescp,
				(LPCTSTR)m_strStepPreResult,
				(LPCTSTR)m_strStepResult,
				(LPCTSTR)m_strStepStatus);
}

void CTestStepObject::Serialize(CArchive& ar)
{
	//WORD w;
	if (ar.IsStoring())
	{
		//w = (WORD)m_int;
		ar << m_strSequence;
		ar << m_strStepType;
		ar << m_strStepNo;
		ar << m_strStepName;
		ar << m_strStepDescp;
		ar << m_strStepPreResult;
		ar << m_strStepResult;
		ar << m_strStepStatus;
	}
	else
	{
		//ar >> w;
		//m_int = w;
		ar >> m_strSequence;
		ar >> m_strStepType;
		ar >> m_strStepNo;
		ar >> m_strStepName;
		ar >> m_strStepDescp;
		ar >> m_strStepPreResult;
		ar >> m_strStepResult;
		ar >> m_strStepStatus;
	}
}




//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CTestStepObjects::CTestStepObjects(MSXML2::IXMLDOMNodePtr parentNode)
{
	MSXML2::IXMLDOMNodePtr PtrNode = parentNode;
	MSXML2::IXMLDOMNodePtr PtrNode1;

	if(PtrNode!=NULL)                              //Run非空
	{
		PtrNode = PtrNode->GetfirstChild();        //得到TestStep
		if(PtrNode!=NULL)                           //TestStep非空
		{
			while(PtrNode!=NULL)                          //遍历所有的TestStep节点
			{						
				PtrNode1=PtrNode->GetfirstChild();
				if(PtrNode1!=NULL)
				{
					CTestStepObject*  p_TestStep = new CTestStepObject(PtrNode);
					p_TestStep->m_strSequence = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepType = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepNo = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepName = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					//需要处理文本中的标签<html><body><br></body></html>
					CString str = ::SysAllocString(PtrNode1->text);
					str.TrimLeft("<html><body>");
					str.TrimRight("//html>");
					str.TrimRight("<");
					str.TrimRight("//body>");
					str.TrimRight("<");
					str.Replace("<br>","");
					//p_TestStep->m_strStepDescp = ::SysAllocString(PtrNode1->text);
					p_TestStep->m_strStepDescp = str;
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepPreResult = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepResult = ::SysAllocString(PtrNode1->text);
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepStatus = ::SysAllocString(PtrNode1->text);

					m_teststepobArray.Add(p_TestStep);			
					PtrNode = PtrNode->GetnextSibling();
				} else {
					AfxMessageBox("测试步骤TestStep节点下无子节点!");
					PtrNode = PtrNode->GetnextSibling();	    //下一个TestCase
				}
			}
			return;
		} 
		AfxMessageBox("无用例步骤TestStep节点!");
		return;		
	}
	AfxMessageBox("无用例步骤TestStepDetail节点!");
	return;
}

CTestStepObjects::~CTestStepObjects()
{

}


void CTestStepObject::SetStepResult(CString str)
{
	m_strStepResult = str;
	p_TestStepNode->GetchildNodes()->Getitem(6)->text = _bstr_t(m_strStepResult);
}

void CTestStepObject::SetStepStatus(CString str)
{
	m_strStepStatus = str;
	p_TestStepNode->GetchildNodes()->Getitem(7)->text = _bstr_t(m_strStepStatus);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -