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

📄 testrunobjects.cpp

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

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

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


IMPLEMENT_SERIAL(CTestRunObject, CObject, 0)

CTestRunObject::CTestRunObject()
{

}

CTestRunObject::CTestRunObject(MSXML2::IXMLDOMNodePtr PtrNode)
{
	p_TestRunNode = PtrNode;
}

CTestRunObject::~CTestRunObject()
{
	p_TestRunNode = NULL;
}

void CTestRunObject::FormatMyObject(CString& str)
{
	str.Format(_T("{%s, %s, %s, %s}"),
				(LPCTSTR)m_strRunID,
				(LPCTSTR)m_strRunName, 
				(LPCTSTR)m_strRunStatus, 
				(LPCTSTR)m_strRunTester);
}

void CTestRunObject::Serialize(CArchive& ar)
{
	//WORD w;
	if (ar.IsStoring())
	{
		//w = (WORD)m_int;
		ar << m_strRunID;
		ar << m_strRunName;
		ar << m_strRunStatus;
		ar << m_strRunTester;
	}
	else
	{
		//ar >> w;
		//m_int = w;
		ar >> m_strRunID;
		ar >> m_strRunName;
		ar >> m_strRunStatus;
		ar >> m_strRunTester;
	}
}




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

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

	if(PtrNode!=NULL)                              //TestRun非空
	{
		while(PtrNode!=NULL)
		{
			CTestRunObject* p_TestRun = new CTestRunObject(PtrNode);
			p_TestRun->m_strRunID = ::SysAllocString(PtrNode->Getattributes()->getNamedItem("ID")->text);
			p_TestRun->m_strRunName = ::SysAllocString(PtrNode->Getattributes()->getNamedItem("Name")->text);
			p_TestRun->m_strRunStatus = ::SysAllocString(PtrNode->Getattributes()->getNamedItem("Status")->text);
			p_TestRun->m_strRunTester = ::SysAllocString(PtrNode->Getattributes()->getNamedItem("Tester")->text);

			CTestStepObjects* p_TestSteps = new CTestStepObjects(PtrNode);
			p_TestRun->p_objTestStepArray = p_TestSteps;

			m_testrunobArray.Add(p_TestRun);	
			PtrNode = PtrNode->GetnextSibling();
		}
		return;
	} else {
		AfxMessageBox("无Run节点!");
		return;	
	}
		/*
		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_strStepType = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepNo = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepName = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();	
					p_TestStep->m_strStepDescp = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepPreResult = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepResult = ::SysAllocString(PtrNode1->Gettext());
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestStep->m_strStepStatus = ::SysAllocString(PtrNode1->Gettext());

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

CTestRunObjects::~CTestRunObjects()
{

}


void CTestRunObject::SetRunStatus(CString str)
{
	m_strRunStatus = str;
	p_TestRunNode->Getattributes()->getNamedItem("Status")->text = _bstr_t(m_strRunStatus);
}

⌨️ 快捷键说明

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