c – 如何使用UnitTest进行单次测试?

如何使用UnitTest进行单次测试?

我正在运行UnitTest开箱即用.我的主要功能如下:

int main()
{
   printf("diamond test v0.1 %s\n\n",TIMESTAMP);
   diamond::startup();
   UnitTest::RunAllTests();
   diamond::shutdown();
   printf("press any key to continue...");
   getc(stdin);
}

对于调试,我想写一些类似UnitTest :: RunSingleTests(“MyNewUnitTest”);而不是UnitTest :: RunAllTests();. UnitTest是否提供了这样的功能,如果是这样,语法是什么?

尝试这个作为你的main()for unittest(我实际上把它放在一个文件中并添加到unittest库中,这样当链接到库时,可执行文件会自动使用这个main(),非常方便.)

int main( int argc, char** argv )
{
  if( argc > 1 )
  {
      //if first arg is "suite", we search for suite names instead of test names
    const bool bSuite = strcmp( "suite", argv[ 1 ] ) == 0;

      //walk list of all tests, add those with a name that
      //matches one of the arguments  to a new TestList
    const TestList& allTests( Test::GetTestList() );
    TestList selectedTests;
    Test* p = allTests.GetHead();
    while( p )
    {
      for( int i = 1 ; i < argc ; ++i )
        if( strcmp( bSuite ? p->m_details.suiteName
                           : p->m_details.testName, argv[ i ] ) == 0 )
          selectedTests.Add( p );
      p = p->next;
    }

      //run selected test(s) only
    TestReporterStdout reporter;
    TestRunner runner( reporter );
    return runner.RunTestsIf( selectedTests, 0, True(), 0 );
  }
  else
  {
    return RunAllTests();
  }
}

使用参数调用运行单个测试:

> myexe MyTestName

或单人套房

> myexe suite MySuite
翻译自:https://stackoverflow.com/questions/3546054/how-do-i-run-a-single-test-with-unittest

转载注明原文:c – 如何使用UnitTest进行单次测试?