== Arquillian Reporter integration

Arquillian Reporter (https://github.com/arquillian/arquillian-reporter) project brings neat reports of your Arquillian tests.

Check Arquillian Reporter website to see the kind of reports you can generate and how to configure it.

Arquillian Cube integrates with Arquillian Reporter to use the reports and provide some information about the Cube
environment.

To integrate Cube with Reporter, you only need to add arquillian reporter's depchain dependency:

[source, xml]
.pom.xml
----
<dependency>
    <groupId>org.arquillian.reporter</groupId>
    <artifactId>arquillian-reporter-depchain</artifactId>
    <version>${version.arquillian.reporter}</version>
    <type>pom</type>
</dependency>
----

After that all *cubes* information will be added in the report.
Cubes are elements that are deployed into a system, for example a Pod or a Docker container.

For example, in the case of a Docker Cube start and stop duration time wil be reported, whether the container execution
failed or not, and some container properties like ports, links, image name, entrypoint, network, etc.

=== Arquillian Cube Docker Reporter

In the previous section you've read that by just adding reporter dependency, you'll get integration between Cube and
Reporter, and some information about *cubes* (for example a docker container) is reported.

But sometimes you need more information about the system, rather than on individual *cubes*.
For this reason a Docker Cube-Reporter integration exists, that adds specific information to the report about
environment peculiarities, like the composition used during deployment or the docker host information.

For this reason if you add next dependency too:

[source, xml]
.pom.xml
----
<dependency>
    <groupId>org.arquillian.cube</groupId>
    <artifactId>arquillian-cube-docker-reporter</artifactId>
    <scope>test</scope>
</dependency>
----

Information about the docker host and docker compositions will be added to the report.

=== Arquillian Cube Docker Drone Integration

In <<Cube Docker Drone/Graphene Integration>> you've read that you can execute web UI tests inside a docker container,
which contains the browser.
Also, a screencast is recorded, so that you can review lately what has happened inside the container.

If you add the aforementioned dependencies, i.e. `arquillian-cube-docker-reporter` and `arquillian-reporter-depchain` to
a Cube Docker Drone project, then the report will contain the screencasts as well, for you to display them directly
within the report the recordings.

=== Arquillian Cube Docker RestAssured Integration

If you add `arquillian-cube-docker-reporter` and `arquillian-reporter-depchain` in a Cube Docker RestAssured project,
then the report will contain the request and response logs for all test methods.

=== Arquillian Cube Kubernetes Reporter

There is an Arquillian Cube Kubernetes Reporter integration that provides report data about resources configuration
and the Kubernetes session i.e. Namespace, Master URL, Replication Controllers, Pods, Services etc.

For this integration to work the following dependencies must be added:

[source, xml]
.pom.xml
----
<dependency>
    <groupId>org.arquillian.cube</groupId>
    <artifactId>arquillian-cube-kubernetes-reporter</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.arquillian.reporter</groupId>
    <artifactId>arquillian-reporter-depchain</artifactId>
    <version>${version.arquillian.reporter}</version>
    <type>pom</type>
</dependency>
----

=== Examples

Arquillian Cube Docker Reports: https://github.com/arquillian/arquillian-cube/tree/main/docker/ftest-reporter

Arquillian Cube Docker Drone Reports: https://github.com/arquillian/arquillian-cube/tree/main/docker/ftest-drone-reporter

Arquillian Cube Kubernetes Reports: https://github.com/arquillian/arquillian-cube/tree/main/kubernetes/ftest-kubernetes-reporter

Arquillian Reporter for more information: https://github.com/arquillian/arquillian-reporter
