jenkinsci / ecu-test-execution-plugin

This plugin enables a platform-independent test execution. It integrates ecu.test and trace.check with Jenkins and allows report generation and its upload of automated test execution.
https://plugins.jenkins.io/ecu-test-execution/
Other
5 stars 2 forks source link
builder ecu-test external jenkins jenkins-plugin report rest-api test-guide testautomation trace-check tracetronic

ecu.test execution plugin

Build Status Jenkins Plugin Jenkins Release Plugin Installs License

This plugin enables a platform-independent test execution. Due to the reduced complexity and communication via REST API, it provides an easy and reliable entry into continuous testing. It integrates ecu.test and trace.check with Jenkins and allows report generation and its upload of automated test execution.

ecu.test Logo

ecu.test is a test automation software for the validation of embedded systems in automotive environments developed by tracetronic GmbH.
This software executes regression tests which are essential for validating complex technical products such as electronic control units (ECUs).
It supports standardized access to a broad range of test tools and provides automation of distributed test environments (SiL – MiL – HiL – vehicle).

tracetronic ecu.test Jenkins Plugin project is part of the Automotive DevOps Platform by tracetronic. With the Automotive DevOps Platform, we go from the big picture to the details and unite all phases of vehicle software testing – from planning the test scopes to summarizing the test results. At the same time, continuous monitoring across all test phases always provides an overview of all activities – even with several thousand test executions per day and in different test environments.

Please consider other open-source automation solutions by tracetronic, especially Jenkins Library and CX Templates.

Table of Contents

Features

Configuration

Tool configuration

ecu.test and trace.check installations are administrated in the global tool configuration at section "ecu.test". An installation entry is specified by an arbitrary name and the full path including the executable file extension. The execution on a Jenkins agent requires the adaptation of the path to the executable of the tool on the agent configuration page.

ecu.test

Pipeline job configuration

The Pipeline Plugin allows to orchestrate automation simple. This plugin supports the use of all provided build steps from within a Jenkins Pipeline build. The appropriate DSL syntax for these steps and actions can be easily generated with help of the Pipeline Snippet Generator .

node('windows') {
    stage('Start Tools') {
        ttStartTool toolName: 'ecu.test', workspaceDir: './workspace', settingsDir: './settings'
    }
    stage('Package Checks') {
        ttCheckPackage testCasePath: 'sample.pkg'
        ttCheckPackage testCasePath: 'sample.prj'
    }
    stage('Test Execution') {
        ttRunProject testCasePath: 'sample.prj', testConfig: [tbcPath: 'sample.tbc', tcfPath: 'sample.tcf', constants: [[label: 'sample', value: '123']]]
        ttRunPackage testCasePath: 'sample.pkg', testConfig: [tbcPath: '', tcfPath: '', forceConfigurationReload: true, constants: [[label: 'sample', value: '\'sampleValue\'']]]
    }
    stage('Provide ecu.test logs in jenkins') {
        ttProvideLogs timeout: 60
    }
    stage('Generate Reports') {
        ttGenerateReports 'HTML'
    }
    stage('Upload Reports') {
        ttUploadReports credentialsId: 'tgAuthKey', projectId: 1, testGuideUrl: 'http://HOST:Port'
    }
    stage('Stop Tools') {
        ttStopTool 'ecu.test'
    }
}

The test.guide authentication key has to be set as a Jenkins credential (username and password) to be used in the ttUploadReports step.

Migration

See migration guide for information about how to migrate from previous plugin version 2.x to 3.x using the new pipeline syntax.

Contribution

To report a bug or request an enhancement to this plugin please raise a new GitHub issue.

Known Issues

When encountering problems or error messages, please check the installed plugin version at first and update to the most recent version, if any. If the problem still exists search the following list of issues for possible solutions, otherwise you are asked to create an issue.

When executing ttRunTestFolders, an error with the messages that the path does not exist occurs. > This is an issue related to the path resolution. In order to resolve paths correctly, ecu.test needs to be run either > on the server, or on a machine together with the step-executing Jenkins agent. This means in particular, that, when > using a containerized version of ecu.test, the executing Jenkins agent needs to be within the same container.

Compatibility

Version latest - 3.5 3.4 - 3.1 3.0
2024.2 :heavy_check_mark: :x: :x:
2024.1 :heavy_check_mark: :heavy_check_mark: :x:
2023.4 :heavy_check_mark: :heavy_check_mark: :x:
2023.3 :heavy_check_mark: :heavy_check_mark: :x:
2023.2 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
2023.1 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
2022.4 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

:warning: Please note that compatibility for trace.check is only warranted for Windows OS.

optional: test.guide compat matrix (min 1.114.3) | Version | latest - 3.0 | |:-------:|:------------------:| | 1.147.0 | :heavy_check_mark: | | 1.142.0 | :heavy_check_mark: |

Support

If you have any further questions, please contact us at support@tracetronic.com.

License

This plugin is licensed under the terms of the 3-Clause BSD license.

Using the REUSE helper tool, you can run reuse spdx to get a bill of materials. For 3rd party dependencies you can use ./gradlew checkLicense. The third-party dependencies are generated in ./build/licenses/.

To generate a software bill of material (sbom) for the project run ./gradlew cyclonedxBom. The generated sbom destination is build/reports/bom.json