/*
 * 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
 */


/**
\mainpage Welcome to Robot Testing Framework
\image html robottestingframework.png

Robot Testing Framework is a generic and multi-platform testing framework for
the test driven development (TDD) which is initially designed for the robotic
systems.
However, it can be used for any TDD system.
<br>
The framework provides functionalities for developing and running unit tests in
a language and middleware independent manner.
The test cases are developed as independent plug-ins (i.e., using scripting
languages or built as dynamically loadable libraries) to be loaded and executed
by an automated test runner. Moreover, a fixture manager prepares the setup
(e.g., running robot interfaces, simulator) and actively monitors that all the
requirements for running the tests are satisfied during the execution of the
tests. These  functionalities along with other facilities such as the test
result collector, result formatter and remote interface allow for rapid
development of test units to cover different levels of system testing.

<br>
\section Tutorials
\li \ref robottestingframework_plugin_example
\li \ref robottestingframework_lua_plugin_example
\li \ref robottestingframework_python_plugin_example
\li \ref robottestingframework_ruby_plugin_example
\li \ref robottestingframework-testrunner

<br>
\section install Installation
Robot Testing Framework library does not depend on any external library.
The Robot Testing Framework has a \c robottestingframework-testrunner utility
(see \ref robottestingframework-testrunner) to easily run the test cases which
are built as plug-ins.
Test cases can be organized in test suites using a simple XML files.
The \c robottestingframework-testrunner uses TinyXml library for parsing the
suite XML files.
Robot Testing Framework build system check for the installation of TinyXml and,
in case, it cannot find any installed version of TinyXml library, it uses the
internal version which is delivered with the Robot Testing Framework.
The source code of the Robot Testing Framework is vailable at
https://github.com/robotology/robot-testing-framework.

\subsection compile Compile and Build
The installation is easy, straightforward and uses \c CMake building system.
\verbatim
    $ git clone https://github.com/robotology/robot-testing-framework.git
    $ cd robot-testing-framework
    $ mkdir build; cd build
    $ cmake ../; make
\endverbatim

and optionally:
\verbatim
    $ make install
\endverbatim


\subsection conf Configuration
The only thing you need to configure is the RobotTestingFramework_DIR environment variable so that
CMake can find Robot Testing Framework libraries and header files.

For example on Linux/Mac:
\verbatim
    $ echo 'export RobotTestingFramework_DIR=<path to the Robot Testing Framework build director>' >> ~/.bashrc
\endverbatim

Alternatively you can add the Robot Testing Framework \c 'bin' directory to your system PATH
variable.
\verbatim
    $ echo 'export PATH=$PATH:<path to the Robot Testing Framework bin director>' >> ~/.bashrc
\endverbatim


<br>
\section example Running Examples
There are some examples which are created by building Robot Testing Framework
(The \c BUILD_EXAMPLES=ON should be enabled in the CMake).
After building the Robot Testing Framework, you can run these examples from
\c build/bin directory.
\verbatim
    $ cd build/bin
    $ ./simple
    $ ./simple_suite
    $ ./simple_collector
    $ ...
\endverbatim


<br>
\author Ali Paikan

*/
