System Testing
System testing in the NDIP platform is designed to verify the functionality of Galaxy tools by running automated tests defined within their XML files. This process is managed through the .gitlab-ci.yml
file and utilizes planemo
to execute the tests.
Test Execution
The system tests are executed as part of the testing
stage in the .gitlab-ci.yml
file. These tests are run automatically on a schedule. The process is as follows:
- Test Discovery: The CI script searches for all tool XML files that contain a
<test>
tag. This tag indicates that the tool has a defined test case. - Test Execution: For each tool with a defined test, a Docker container is launched, and
planemo
is used to run the test against a specified Galaxy instance. - Test Results: The results of the tests are captured as JUnit XML files and are available as artifacts in the GitLab CI pipeline. The results are also pushed to Prometheus for monitoring.
Adding New Tests
To add a new system test for a tool, you must add a <test>
section to the tool's XML file. This section should define the input parameters for the tool and the expected output. For more information on writing tool tests, please refer to the Planemo documentation.