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

📄 testcaseobjects.cpp

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

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

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


IMPLEMENT_SERIAL(CTestCaseObject, CObject, 0)

CTestCaseObject::CTestCaseObject()
{
	
}

CTestCaseObject::CTestCaseObject(MSXML2::IXMLDOMNodePtr PtrNode)
{
	p_TestCaseNode = PtrNode;
}

CTestCaseObject::~CTestCaseObject()
{
	p_TestCaseNode = NULL;
}

void CTestCaseObject::FormatMyObject(CString& str)
{
	str.Format(_T("{%s, %s, %s, %s, %s, %s, %s}"),
				(LPCTSTR)m_strTestID,
				(LPCTSTR)m_strHasAttach,
				(LPCTSTR)m_strType, 
				(LPCTSTR)m_strTestName,
				(LPCTSTR)m_strTestDescp,
				(LPCTSTR)m_strTestScript,
				(LPCTSTR)m_strTestStauts);
}

void CTestCaseObject::Serialize(CArchive& ar)
{
	//WORD w;
	if (ar.IsStoring())
	{
		//w = (WORD)m_int;
		ar << m_strTestID;
		ar << m_strHasAttach;
		ar << m_strType;
		ar << m_strTestName;
		ar << m_strTestDescp;
		ar << m_strTestScript;
		ar << m_strTestStauts;
	}
	else
	{
		//ar >> w;
		//m_int = w;
		ar >> m_strTestID;
		ar >> m_strHasAttach;
		ar >> m_strType;
		ar >> m_strTestName;
		ar >> m_strTestDescp;
		ar >> m_strTestScript;
		ar >> m_strTestStauts;
	}
}


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

CTestCaseObjects::CTestCaseObjects(MSXML2::IXMLDOMNodePtr parentNode)
{
	MSXML2::IXMLDOMNodePtr PtrNode = parentNode;    //TestSet节点
	MSXML2::IXMLDOMNodePtr PtrNode1;

	if(PtrNode!=NULL)                                   //TestSet非空
	{
		PtrNode = PtrNode->GetfirstChild();             //得到第一个TestCase
		if(PtrNode!=NULL)                              //TestCase非空
		{
			while(PtrNode!=NULL)                            
			{
				PtrNode1=PtrNode->GetfirstChild();
				if(PtrNode1!=NULL)
				{
					CTestCaseObject*  p_TestCase = new CTestCaseObject(PtrNode);               //构造TestCase
					p_TestCase->m_strTestID = ::SysAllocString(PtrNode1->Gettext());    //TestID
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strHasAttach = ::SysAllocString(PtrNode1->Gettext());    //TestID
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strType = ::SysAllocString(PtrNode1->Gettext());       //Type
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strTestName = ::SysAllocString(PtrNode1->Gettext());   //TestName
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strTestDescp = ::SysAllocString(PtrNode1->Gettext());  //TestDescp
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strTestScript = ::SysAllocString(PtrNode1->Gettext());  //TestScript
					PtrNode1=PtrNode1->GetnextSibling();
					p_TestCase->m_strTestStauts = ::SysAllocString(PtrNode1->Gettext());  //TestStauts

					PtrNode1=PtrNode1->GetnextSibling();             //Run节点,TestStepDetail节点
					//CTestStepObjects* p_TestSteps = new CTestStepObjects(PtrNode1);
					//p_TestCase->p_objTestStepArray = p_TestSteps;
					CTestRunObjects* p_TestRuns = new CTestRunObjects(PtrNode1);
					p_TestCase->p_objTestRunArray = p_TestRuns;
				
					m_testcaseobArray.Add(p_TestCase);			
					PtrNode = PtrNode->GetnextSibling();	    //下一个TestCase
				} else {
					AfxMessageBox("测试用例TestCase节点下无子节点!");
					PtrNode = PtrNode->GetnextSibling();	    //下一个TestCase	
				}
			}
			return;
		}
		AfxMessageBox("无测试用例TestCase节点!");
		return;
	}
	AfxMessageBox("无测试计划TestSet节点!");
	return;
}

CTestCaseObjects::~CTestCaseObjects()
{
	/*for (int n = 0; n < m_testcaseobArray.GetSize(); n++)
	{
		delete m_testcaseobArray[n];
	}*/
}

void CTestCaseObject::SetTestStauts(CString str)
{
	m_strTestStauts = str;
	p_TestCaseNode->GetchildNodes()->Getitem(6)->text = _bstr_t(m_strTestStauts);
}

⌨️ 快捷键说明

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