robottestingframework::TextOutputter Class Reference

Class TextOutputter saves the results of the test collected by a TestResultCollector in a plain text file. More...

`#include <robottestingframework/TextOutputter.h>`

## Public Member Functions

| TextOutputter (TestResultCollector &collector, bool verbose=false)
| TextOutputter constructor. More...
virtual | ~TextOutputter ()
| ~TextOutputter destructor More...
bool | write (std::string filename, bool summary, TestMessage *errorMsg=nullptr)
| write Write the results of the test in a text file. More...

## Private Attributes

bool | verbose
TestResultCollector & | collector

## Detailed Description

Class TextOutputter saves the results of the test collected by a TestResultCollector in a plain text file.

The results are written with the same order collected by the TestResultCollector.

Here's an example of using a TextOutputter:

/*
* 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 <robottestingframework/ConsoleListener.h>
#include <robottestingframework/TestAssert.h>
#include <robottestingframework/TestCase.h>
#include <robottestingframework/TestResult.h>
#include <robottestingframework/TestResultCollector.h>
#include <robottestingframework/TestRunner.h>
#include <robottestingframework/TestSuite.h>
#include <robottestingframework/TextOutputter.h>
#include <cstdio>
using namespace robottestingframework;
class MyTest1 : public TestCase
{
public:
MyTest1() :
TestCase("MyTest1")
{
}
void run() override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("testing smaller");
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(3 < 5, "is not smaller");
}
};
class MyTest2 : public TestCase
{
public:
MyTest2() :
TestCase("MyTest2")
{
}
void run() override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("testing equality");
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(5 == 3, "are not equal");
}
};
int main(int argc, char** argv)
{
// create a test listener to print out the result
ConsoleListener listener(false);
// create a test result collector to collect the result
TestResultCollector collector;
// create a test result and add the listeners
TestResult result;
result.addListener(&listener);
result.addListener(&collector);
// create a test suite and the test cases
TestSuite suite("MyTestSuite");
MyTest1 test1;
MyTest2 test2;
suite.addTest(&test1);
suite.addTest(&test2);
// create a test runner
TestRunner runner;
runner.addTest(&suite);
runner.run(result);
// print out some simple statistics
printf("\n-------- results ---------\n");
printf("Total number of tests : %d\n", collector.testCount());
printf("Number of passed tests: %d\n", collector.passedCount());
printf("Number of failed tests: %d\n", collector.failedCount());
// store the results in a text file
TextOutputter outputter(collector);
outputter.write("./result.txt", true);
// return the number of failed tests
return collector.failedCount();
}
ConsoleListener.h
TestAssert.h
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE
#define ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(condition, message)
Conditional failure report.
Definition: TestAssert.h:149
ROBOTTESTINGFRAMEWORK_TEST_REPORT
#define ROBOTTESTINGFRAMEWORK_TEST_REPORT(message)
Reporting a message to the TestResult.
Definition: TestAssert.h:131
TestCase.h
TestResultCollector.h
TestResult.h
TestRunner.h
TestSuite.h
TextOutputter.h
robottestingframework::TestResultCollector::failedCount
unsigned int failedCount()
failedCount gets the number of failed test cases.
robottestingframework::TestResultCollector::testCount
unsigned int testCount()
testCount gets the number of test cases.
robottestingframework::TestResultCollector::passedCount
unsigned int passedCount()
passedCount gets the number of passed test cases.
robottestingframework::TextOutputter::collector
TestResultCollector & collector
Definition: TextOutputter.h:77
robottestingframework::TextOutputter::TextOutputter
TextOutputter(TestResultCollector &collector, bool verbose=false)
TextOutputter constructor.
robottestingframework
Definition: Arguments.h:25

Definition at line 43 of file TextOutputter.h.

## Constructor & Destructor Documentation

## TextOutputter()

robottestingframework::TextOutputter::TextOutputter | ( | TestResultCollector & | collector,
|  | bool | verbose = `false`
| ) |  |

TextOutputter constructor.

Parameters

  collector | an instance of a TestResultCollector which holds the results of the test
  verbose | enables the verbose mode. If `true`, the source file and the line number where the messages are issued by the tests will be written to the output file. The verbose mode is disabled by default.

## ~TextOutputter()

virtual robottestingframework::TextOutputter::~TextOutputter | ( |  | ) |

virtual

~TextOutputter destructor

## Member Function Documentation

## write()

bool robottestingframework::TextOutputter::write | ( | std::string | filename,
|  | bool | summary,
|  | TestMessage * | errorMsg = `nullptr`
| ) |  |

write Write the results of the test in a text file.

Parameters

  filename | the name of the text file. If an instance of the TestMesagge is given to the function, it will return the error message in case of failure.
  errorMsg | a pointer to a TestMessage to return the error message in case of failure. It can be left unassigned if it is not required.

Returns
  true or false uppoun success or failure

## Member Data Documentation

## collector

TestResultCollector& robottestingframework::TextOutputter::collector

private

Definition at line 77 of file TextOutputter.h.

## verbose

bool robottestingframework::TextOutputter::verbose

private

Definition at line 76 of file TextOutputter.h.

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

- src/robottestingframework/include/robottestingframework/TextOutputter.h