CppUnit::MfcUi::TestRunner runner;
runner.addTest(PlusTest::suite()); //添加测试
runner.run(); //show UI
/*
CCPlusTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
*/
前面我们提到过,TestRunner输出图2这样的对话框,这也是前面我们为什么要为TestRunner.dll的路径设置环境变量的原因。
注意:PlusTest::suite()返回一个指向CppUnit::Test的指针.这个指针就是整个测试的起点。CppUnit::TestFactoryRegistry::getRegistry()根据TestSuite的名字返回TestFactoryRegistry工厂,然后调用工厂里的makeTest()对TestSuite进行组装,这是个递归调用,将建立起一个树状的测试结构。
namespace PlusTest
{ CppUnit::Test* suite()
{ CppUnit::TestFactoryRegistry ®istry =
CppUnit::TestFactoryRegistry::getRegistry(plusSuiteName());
return registry.makeTest(); }}
另外别忘加头文件:
#include CPlusTestSuite.h
#include <cppunit/ui/mfc/TestRunner.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
3、在Project中加入一个类,取名CPlusTestCase
CPlusTestCase从CppUnit::TestCase继承,代码如下:
class CPlusTestCase : public CppUnit::TestCase
{ CPPUNIT_TEST_SUITE(CPlusTestCase);
CPPUNIT_TEST(testAdd);
CPPUNIT_TEST_SUITE_END();
public:
CPlusTestCase();
virtual ~CPlusTestCase();
void testAdd(); //测试方法};
看到这几个宏了吗?它们可是在这大显身手了一把。
文章来源于领测软件测试网 https://www.ltesting.net/