CEGRcode/scriptmanager

JUnit tests for CI development of all tools

Opened this issue · 0 comments

We need to set-up continuous integration automatic testing of our tools to screen for breaking changes. This needs to be done for all tools.

Current plan is to use JUnit 5 through Gradle to set up our testing framework.

One idea is to create a test suite for each tool group (script package) and implement a "@nested" test for each tool within the group. Coordinate Manipulation tools (public static void-type scripts) may be easier implementations to start with and then implementing BAM Manipulation tools would establish a standard for Picard-implemented tools, scripts with constructor implemented tools, and BAM formatted input/output checks for the rest of the tools/groups.

  • Set-up JUnit using Gradle
  • Create a test for Coordinate Manipulation (BED-to-GFF) as a first example
  • Make sure test runs using command-line Gradle
  • Set-up test to run in Github actions
  • Create a test example from BAM Manipulation tools as representative examples of different tool types
  • Implement the rest of the tool-specific tests according to the examples