Skip to content

tonicforhealth/testrail-report-aggregator

Repository files navigation

Testrail Report Aggregator

License Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight

Tool to aggregation report from JUnit like format to TestRail run report.

Installation using Composer

$ composer require tonicforhealth/testrail-report-aggregator

Junit report example

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
    <testsuite name="IDENT.IDENT2.1.9.4 description" tests="1" failures="0"/>
    <testsuite name="IDENT.IDENT2.1.9.5 description" tests="1" failures="0"/>
    <testsuite name="IDENT.IDENT2.1.9.6 description" tests="1" failures="1">
        <failure
                message="Some error text of the Test IDENT.IDENT2.1.9.6"/>
    </testsuite>
</testsuites>

Case sync use ident which find in the name by using regex ^[\w._-]+.[\w]+.[\w]+

Usage

<?php

        $testRunId = 1885;
        $apiUrl = 'https://test.testrail.com/index.php?/api/v2/';
        $user = 'dev@test.com';
        $passwordOrToken = 'chengeMePls'
        $junitXml = 'fixture/simple_junit_report.xml';

        $authentication = new BasicAuth(
            $user,
            $passwordOrToken
        );
        $plugins[] = new AuthenticationPlugin($authentication);

        $pluginClient = new PluginClient(HttpClientDiscovery::find(), $plugins);

        $httpMethodsClient = new HttpMethodsClient($pluginClient, MessageFactoryDiscovery::find());

        $junitReport = new JunitReport($junitXml);

        $testRailReportA = new JUnitToTestRailRunTransformer($testRunId);

        $testRailSync = new TestRailSync($apiUrl, $httpMethodsClient);

        $testRailReport = $testRailReportA->transform($junitReport);

        $testRailSync->sync($testRailReport);

        $testRailSync->pushResults($testRailReport);

About

Tool for aggregation JUnit report format and push test run result to TestRail run

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages