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

📄 testrunnerdlg.cpp

📁 C++中的单元测试类库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  m_buttonRun.EnableWindow( FALSE );  m_buttonBrowse.EnableWindow( FALSE );  m_buttonStop.EnableWindow( FALSE );  m_buttonClose.EnableWindow( TRUE );//    m_buttonRun.SetButtonStyle( m_buttonRun.GetButtonStyle() | BS_DEFPUSHBUTTON );//    m_buttonStop.SetButtonStyle( m_buttonStop.GetButtonStyle() & ~BS_DEFPUSHBUTTON );}void TestRunnerDlg::freeState(){  delete m_activeTest;  delete m_result;  delete m_testObserver;  m_activeTest = 0;  m_result = 0;  m_testObserver = 0;}void TestRunnerDlg::reset(){  m_testsRun = 0;  m_errors = 0;  m_failures = 0;  m_testEndTime = m_testStartTime;  updateCountsDisplay();  freeState();  CListCtrl *listCtrl = (CListCtrl *)GetDlgItem (IDC_LIST);  listCtrl->DeleteAllItems();  m_testsProgress->reset();  displayFailureDetailsFor( -1 );}void TestRunnerDlg::updateCountsDisplay(){  CStatic *statTestsRun = (CStatic *)GetDlgItem( IDC_STATIC_RUNS );  CStatic *statErrors = (CStatic *)GetDlgItem( IDC_STATIC_ERRORS );  CStatic *statFailures = (CStatic *)GetDlgItem( IDC_STATIC_FAILURES );  CEdit *editTime = (CEdit *)GetDlgItem( IDC_EDIT_TIME );  CString argumentString;  argumentString.Format( _T("%d"), m_testsRun );  statTestsRun->SetWindowText (argumentString);  argumentString.Format( _T("%d"), m_errors );  statErrors->SetWindowText( argumentString );  argumentString.Format( _T("%d"), m_failures );  statFailures->SetWindowText( argumentString );  argumentString.Format( _T("Execution time: %3.3lf seconds"),                          (m_testEndTime - m_testStartTime) / 1000.0 );  editTime->SetWindowText( argumentString );}void TestRunnerDlg::OnStop() {  if ( m_testObserver )    m_testObserver->stop ();  beIdle ();}void TestRunnerDlg::OnOK() {  if ( m_testObserver )    m_testObserver->stop ();  UpdateData();  saveSettings();  cdxCDynamicDialog::OnOK ();}void TestRunnerDlg::OnSelectTestInHistoryCombo() {  unsigned int currentSelection = getHistoryCombo()->GetCurSel ();  if ( currentSelection >= 0  &&       currentSelection < m_model->history().size() )  {    CPPUNIT_NS::Test *selectedTest = m_model->history()[currentSelection];    m_model->selectHistoryTest( selectedTest );    updateHistoryCombo();    beIdle();  }  else    beRunDisabled();}voidTestRunnerDlg::updateHistoryCombo(){  getHistoryCombo()->LockWindowUpdate();  getHistoryCombo()->ResetContent();  const TestRunnerModel::History &history = m_model->history();  for ( TestRunnerModel::History::const_iterator it = history.begin();         it != history.end();         ++it )  {    CPPUNIT_NS::Test *test = *it;    getHistoryCombo()->AddString( CString(test->getName().c_str()) );  }  if ( history.size() > 0 )  {    getHistoryCombo()->SetCurSel( 0 );    beIdle();  }  else  {    beRunDisabled();    m_buttonBrowse.EnableWindow( TRUE );	}  getHistoryCombo()->UnlockWindowUpdate();}void TestRunnerDlg::OnBrowseTest() {  TreeHierarchyDlg dlg;  dlg.setRootTest( m_model->rootTest() );  if ( dlg.DoModal() == IDOK )  {    m_model->selectHistoryTest( dlg.getSelectedTest() );    updateHistoryCombo();  }}BOOL TestRunnerDlg::PreTranslateMessage(MSG* pMsg) {  if ( ::TranslateAccelerator( m_hWnd,                               m_hAccelerator,                               pMsg ) )  {    return TRUE;  }  return cdxCDynamicDialog::PreTranslateMessage(pMsg);}CComboBox *TestRunnerDlg::getHistoryCombo(){  CComboBox   *comboBox = (CComboBox *)GetDlgItem (IDC_COMBO_TEST);  ASSERT (comboBox);  return comboBox;}voidTestRunnerDlg::loadSettings(){  m_model->loadSettings(m_settings);  RestoreWindowPosition( TestRunnerModel::settingKey,                          TestRunnerModel::settingMainDialogKey );  m_bAutorunAtStartup = m_settings.autorunOnLaunch;}voidTestRunnerDlg::saveSettings(){  m_settings.autorunOnLaunch = ( m_bAutorunAtStartup != 0 );  StoreWindowPosition( TestRunnerModel::settingKey,                        TestRunnerModel::settingMainDialogKey );    m_settings.col_1 = m_listCtrl.GetColumnWidth(0);  m_settings.col_2 = m_listCtrl.GetColumnWidth(1);  m_settings.col_3 = m_listCtrl.GetColumnWidth(2);  m_settings.col_4 = m_listCtrl.GetColumnWidth(3);  m_model->saveSettings(m_settings);}void TestRunnerDlg::OnQuitApplication() {  if ( m_testObserver )    m_testObserver->stop();  UpdateData();  saveSettings();    CWinApp *app = AfxGetApp();  ASSERT( app != NULL );  app->PostThreadMessage( WM_QUIT, 0, 0 );}TestRunnerModel &TestRunnerDlg::model(){  ASSERT( m_model != NULL );  return *m_model;}void TestRunnerDlg::OnClose() {	OnOK();}CRect TestRunnerDlg::getItemWindowRect( unsigned int itemId ){  CWnd * pItem = GetDlgItem( itemId );  CRect rect;  if ( pItem )    pItem->GetWindowRect( &rect );  return rect;}CRect TestRunnerDlg::getItemClientRect( unsigned int itemId ){  CRect rect = getItemWindowRect( itemId );  if ( !rect.IsRectNull() )  {    CPoint clientTopLeft = rect.TopLeft();    ScreenToClient( &clientTopLeft );    rect = CRect( clientTopLeft, rect.Size() );  }  return rect;}void TestRunnerDlg::initializeLayout(){  // see DynamicWindow/doc for documentation  const int listGrowthRatio = 30;  AddSzXControl( IDC_COMBO_TEST, mdResize );  AddSzXControl( IDC_BROWSE_TEST, mdRepos );  AddSzXControl( IDC_RUNNING_TEST_CASE_LABEL, mdResize );  AddSzXControl( ID_RUN, mdRepos );  AddSzXControl( *m_testsProgress, mdResize );  AddSzXControl( IDC_CHECK_AUTORUN, mdRepos );  AddSzControl( IDC_LIST, 0, 0, 100, listGrowthRatio );  AddSzXControl( ID_STOP, mdRepos );  AddSzXControl( IDOK, mdRepos );  AddSzYControl( IDC_STATIC_DETAILS, listGrowthRatio, listGrowthRatio );  AddSzControl( IDC_DETAILS, 0, listGrowthRatio, 100, 100 );  AddSzControl( IDC_EDIT_TIME, mdResize, mdRepos );}void TestRunnerDlg::OnSize( UINT nType, int cx, int cy ) {	cdxCDynamicDialog::OnSize(nType, cx, cy);	updateListColumnSize();}void TestRunnerDlg::updateListColumnSize(){  if ( !m_listCtrl.GetSafeHwnd() )    return;  // resize to fit last column  CRect listBounds = getItemClientRect( IDC_LIST );    int width_1_4 = 0;  for (int i = 0; i < 4; ++i)    width_1_4 += m_listCtrl.GetColumnWidth( i );    // the 4 offset is so no horiz scroll bar will appear  m_listCtrl.SetColumnWidth(4, listBounds.Width() - width_1_4 - 4); }void TestRunnerDlg::OnSelectedFailureChange( NMHDR* pNMHDR,                                         LRESULT* pResult ){	NM_LISTVIEW *pNMListView = (NM_LISTVIEW*)pNMHDR;  if ( (pNMListView->uNewState & LVIS_SELECTED) != 0 )  // item selected    displayFailureDetailsFor( pNMListView->iItem );		*pResult = 0;}void TestRunnerDlg::displayFailureDetailsFor( unsigned int failureIndex ){  CString details;  if ( m_result  &&  failureIndex < m_result->failures().size() )    details = m_result->failures()[ failureIndex ]->thrownException()->what();  details.Replace( _T("\n"), _T("\r\n") );  m_details.SetWindowText( details );}void TestRunnerDlg::initializeFixedSizeFont(){  LOGFONT font;  GetFont()->GetLogFont( &font );  font.lfPitchAndFamily = FIXED_PITCH | //VARIABLE_PITCH                          (font.lfPitchAndFamily & ~15);   // font family  m_fixedSizeFont.CreateFontIndirect( &font );}

⌨️ 快捷键说明

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