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

📄 testpluginrunnerdlg.cpp

📁 C++中的单元测试类库
💻 CPP
字号:
// TestPlugInRunnerDlg.cpp : implementation file//#include "stdafx.h"#include "TestPlugInRunnerDlg.h"#include "TestPlugIn.h"#include "TestPlugInException.h"#include <algorithm>#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// TestPlugInRunnerDlg dialogTestPlugInRunnerDlg::TestPlugInRunnerDlg( TestPlugInRunnerModel *model,                                          CWnd* pParent )     : TestRunnerDlg( model, "CPP_UNIT_TEST_RUNNER_PLUG_IN_IDD_TEST_PLUG_IN_RUNNER", pParent ){  //{{AFX_DATA_INIT(TestPlugInRunnerDlg)	  // NOTE: the ClassWizard will add member initialization here  //}}AFX_DATA_INIT  // Note that LoadIcon does not require a subsequent DestroyIcon in Win32  m_hIcon = AfxGetApp()->LoadIcon("CPP_UNIT_TEST_RUNNER_PLUG_IN_IDR_TEST_PLUGIN_RUNNER");}void TestPlugInRunnerDlg::DoDataExchange( CDataExchange* pDX ){  TestRunnerDlg::DoDataExchange(pDX);  //{{AFX_DATA_MAP(TestPlugInRunnerDlg)	  // NOTE: the ClassWizard will add DDX and DDV calls here  //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(TestPlugInRunnerDlg, TestRunnerDlg)  //{{AFX_MSG_MAP(TestPlugInRunnerDlg)  ON_WM_PAINT()  ON_WM_QUERYDRAGICON()  ON_BN_CLICKED(IDC_CHOOSE_DLL, OnChooseDll)  ON_BN_CLICKED(IDC_RELOAD_DLL, OnReloadDll)  //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// TestPlugInRunnerDlg message handlersBOOL TestPlugInRunnerDlg::OnInitDialog(){  TestRunnerDlg::OnInitDialog();  // Set the icon for this dialog.  The framework does this automatically  //  when the application's main window is not a dialog  SetIcon(m_hIcon, TRUE);			// Set big icon  SetIcon(m_hIcon, FALSE);		// Set small icon  // TODO: Add extra initialization here  loadPluginIfNesseccary();  return TRUE;  // return TRUE  unless you set the focus to a control}// If you add a minimize button to your dialog, you will need the code below//  to draw the icon.  For MFC applications using the document/view model,//  this is automatically done for you by the framework.void TestPlugInRunnerDlg::OnPaint() {  if (IsIconic())  {    CPaintDC dc(this); // device context for painting    SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);    // Center icon in client rectangle    int cxIcon = GetSystemMetrics(SM_CXICON);    int cyIcon = GetSystemMetrics(SM_CYICON);    CRect rect;    GetClientRect(&rect);    int x = (rect.Width() - cxIcon + 1) / 2;    int y = (rect.Height() - cyIcon + 1) / 2;    // Draw the icon    dc.DrawIcon(x, y, m_hIcon);  }  else  {    TestRunnerDlg::OnPaint();  }}// The system calls this to obtain the cursor to display while the user drags//  the minimized window.HCURSOR TestPlugInRunnerDlg::OnQueryDragIcon(){  return (HCURSOR) m_hIcon;}TestPlugInRunnerModel &TestPlugInRunnerDlg::plugInModel(){  return *static_cast<TestPlugInRunnerModel*>( m_model );}void TestPlugInRunnerDlg::OnChooseDll() {  CFileDialog dlg( TRUE, "*.dll", "", 0,                    "Test Plug-in (*.dll)|*.dll|All Files (*.*)|*.*||",                   this );  if ( dlg.DoModal() != IDOK )    return;  try  {    loadDll(std::string(dlg.GetPathName()));  }  catch ( TestPlugInException &e )  {    AfxMessageBox( e.what() );  }}void TestPlugInRunnerDlg::OnReloadDll() {  reset();  plugInModel().reloadPlugIn();}std::list<std::string> TestPlugInRunnerDlg::getCommandLineArguments(){  int argc;  LPWSTR *argv = ::CommandLineToArgvW( ::GetCommandLineW(), &argc );  std::list<std::string> arguments;  for( int index = 0; index < argc; index++ )     arguments.push_back( std::string( CString( argv[index] ) ) );  ::GlobalFree( argv );  return arguments;} void TestPlugInRunnerDlg::loadPluginIfNesseccary(){  std::list<std::string> argv = getCommandLineArguments();  std::list<std::string>::iterator iter = std::find( argv.begin(),                                                      argv.end(),                                                      std::string( "-testsuite" ) );  if ( iter == argv.end() )     return;  try   {    loadDll( *++iter );  }   catch( std::exception &e )   {    AfxMessageBox( e.what() );  }}void TestPlugInRunnerDlg::loadDll( std::string path ){  TestPlugIn *plugIn = new TestPlugIn( path );  plugInModel().setPlugIn( plugIn );  m_model->selectHistoryTest( plugInModel().rootTest() );  updateHistoryCombo();}void TestPlugInRunnerDlg::initializeLayout(){  TestRunnerDlg::initializeLayout();  AddSzXControl( IDC_CHOOSE_DLL, mdRepos );  AddSzXControl( IDC_RELOAD_DLL, mdRepos );}

⌨️ 快捷键说明

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