RobotTestingFramework 2.0.1
Robot Testing Framework
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Attributes | List of all members
robottestingframework::TestRunner Class Reference

The TestRunner class runs the tests added as TestCase or TestSuite. More...

#include <robottestingframework/TestRunner.h>

Public Member Functions

 TestRunner ()
 TestRunner constructor.
 
virtual ~TestRunner ()
 TestRunner destructor.
 
void addTest (Test *test)
 Adding a new test.
 
void removeTest (Test *test)
 Remove a test.
 
void reset ()
 Clear the test list.
 
void run (TestResult &result)
 Run all the tests in the list.
 
void interrupt ()
 interrupt interrupts the current test run
 

Private Types

typedef std::vector< Test * > TestContainer
 
typedef std::vector< Test * >::iterator TestIterator
 

Private Attributes

TestContainer tests
 
Testcurrent
 
bool interrupted
 

Detailed Description

The TestRunner class runs the tests added as TestCase or TestSuite.

It simply goes through a list of the tests and run them one after each other.

Here's an example of using a TestRunner:

/*
* Robot Testing Framework
*
* Copyright (C) 2015-2019 Istituto Italiano di Tecnologia (IIT)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <cstdio>
using namespace robottestingframework;
class MyTest : public TestCase
{
public:
MyTest() :
TestCase("MyTest")
{
}
bool setup(int argc, char** argv) override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("running MyTest::setup...");
return true;
}
void tearDown() override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("running MyTest::teardown...");
ROBOTTESTINGFRAMEWORK_ASSERT_ERROR("this is just for example!");
}
void run() override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("testing integers");
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(2 < 3, "is not smaller");
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(5 < 3, "is not smaller");
}
};
int main(int argc, char** argv)
{
// create a test listener to collect the result
ConsoleListener listener(false);
// create a collector to get computer readable
// test results
// create a test result and add the listeners
TestResult result;
result.addListener(&listener);
result.addListener(&collector);
// create a test runner
TestRunner runner;
MyTest atest;
runner.addTest(&atest);
runner.run(result);
// return the number of failed tests
return collector.failedCount();
}
#define ROBOTTESTINGFRAMEWORK_ASSERT_ERROR(message)
Assertion with throwing error exception.
Definition TestAssert.h:90
#define ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(condition, message)
Conditional failure report.
Definition TestAssert.h:149
#define ROBOTTESTINGFRAMEWORK_TEST_REPORT(message)
Reporting a message to the TestResult.
Definition TestAssert.h:131
class ConsoleListener listens to any messages reported by the tests during the test run,...
The base class to implememnt a test case.
Definition TestCase.h:42
The TestResultCollector class can be used to store all the events issued by the test cases,...
unsigned int failedCount()
failedCount gets the number of failed test cases.
The TestResult class is used to deliver the test results including any error and failures produced by...
Definition TestResult.h:44
void addListener(TestListener *listener)
Adding a new listener.
The TestRunner class runs the tests added as TestCase or TestSuite.
Definition TestRunner.h:42
void run(TestResult &result)
Run all the tests in the list.
void addTest(Test *test)
Adding a new test.
Examples
simple_collector.cpp, simple_fixture.cpp, simple_runner.cpp, simple_suite.cpp, and simple_web.cpp.

Definition at line 41 of file TestRunner.h.

Member Typedef Documentation

◆ TestContainer

Definition at line 44 of file TestRunner.h.

◆ TestIterator

typedef std::vector<Test*>::iterator robottestingframework::TestRunner::TestIterator
private

Definition at line 45 of file TestRunner.h.

Constructor & Destructor Documentation

◆ TestRunner()

robottestingframework::TestRunner::TestRunner ( )

TestRunner constructor.

◆ ~TestRunner()

virtual robottestingframework::TestRunner::~TestRunner ( )
virtual

TestRunner destructor.

Member Function Documentation

◆ addTest()

void robottestingframework::TestRunner::addTest ( Test test)

Adding a new test.

Parameters
testpointer to a Test object
Examples
simple_collector.cpp, simple_fixture.cpp, simple_runner.cpp, simple_suite.cpp, and simple_web.cpp.

◆ interrupt()

void robottestingframework::TestRunner::interrupt ( )

interrupt interrupts the current test run

◆ removeTest()

void robottestingframework::TestRunner::removeTest ( Test test)

Remove a test.

Parameters
testpointer to a Test object

◆ reset()

void robottestingframework::TestRunner::reset ( )

Clear the test list.

◆ run()

void robottestingframework::TestRunner::run ( TestResult result)

Run all the tests in the list.

Parameters
resultan instance of a TestResult to collect the result of the test.
Examples
simple_collector.cpp, simple_fixture.cpp, simple_runner.cpp, simple_suite.cpp, and simple_web.cpp.

Member Data Documentation

◆ current

Test* robottestingframework::TestRunner::current
private

Definition at line 90 of file TestRunner.h.

◆ interrupted

bool robottestingframework::TestRunner::interrupted
private

Definition at line 91 of file TestRunner.h.

◆ tests

TestContainer robottestingframework::TestRunner::tests
private

Definition at line 89 of file TestRunner.h.


The documentation for this class was generated from the following file: