Skip to content

Latest commit

 

History

History
134 lines (112 loc) · 5.32 KB

README.md

File metadata and controls

134 lines (112 loc) · 5.32 KB

testrail-jenkins-plugin

Forked from https://github.com/achikin/testrail-jenkins-plugin Integrate test results from Jenkins into TestRail. Upload your junit test results to TestRail after every run. Each Jenkins build becomes test run. Each testsuite becomes test group.

This fork changelog

  • Support for parsing suite/cases from TestNG results file
  • removed concept of creating test structure in TestRail from test results file, if a test exists it is updated, otherwise it is ignored
  • added abstraction to enable additional test result file processors to be easily added
  • defined a mapping of JUnit/TestNG XML test results to TestRail Test Suite/Case names

Build

This is a Maven project. You'll need the following in your ~/.m2/settings.xml.

<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>
  <profiles>
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <mirrors>
    <mirror>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
      <mirrorOf>m.g.o-public</mirrorOf>
    </mirror>
  </mirrors>
</settings>

To run on your development box you can just do

mvn hpi:run

That will build and start a Jenkins instance running at http://localhost:8080/jenkins. It will have the plugin installed but not configured.

And to build a package to install on your production Jenkins box

mvn clean package

That creates a .hpi file in the target directory. For more information about installing plugins, please see https://wiki.jenkins-ci.org/display/JENKINS/Plugins.

TestNG Support

To provide robust control over how suites and cases are implemented, support for TestNG's XML configuration has been added. This enables test engineers to define suites and cases as they are in TestRail and map classes/methods to these arbitrarily.

Example testng-results.xml XML output (see: testrail.testrail.testng/testng-results.xml):

This example would map to a Suite named Widget and a test case named Widget Works. This output comes from the example TestNG configuration file:

<!-- the suite `name` attribute must match the test suite name in TestRail -->
<suite name="Widget" verbose="1" >

    <!-- The `name` attribute must match the name in TestRail -->
    <test name="Widget Works" >
        <classes>
            <class name="testrail.testrail.TestWidgetWorks">
                <methods>
                    <include name="testVerifySomething_givenSomething_thenSomething"/>
                </methods>
            </class>
        </classes>
    </test>

    <!-- The `name` attribute must match the name in TestRail -->
    <test name="Widget Does X">
        <classes>
            <class name="testrail.testrail.TestWidgetWorks">
                <methods>
                    <include name="testVerifySomething_givenSomethingElse_thenSomethingElse"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

License

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.