Louis Le Nézet
11/20/2025, 9:30 AMnf-core/phaseimpute, our subworkflow uses several channels, some of which are optional. At the moment, we have a minimal test (single input, one chromosome, only the required channels), and a maximal test (multiple inputs, two chromosomes, all channels enabled).
I’ve recently added a new optional channel, and now we’re wondering whether we should duplicate the existing tests — one version with the channel and one without — to ensure backward compatibility. The downside is that the number of tests would grow quickly, and I’m concerned about gradually increasing the load on GitHub Actions.
Are there any guidelines for designing good unit tests for subworkflows?
Thanks!Maxime Garcia
11/20/2025, 12:08 PMMaxime Garcia
11/20/2025, 12:26 PMAdrien Coulier
11/20/2025, 12:54 PMsmoke_test tag (eg tests that use all the optional channels and parameters) and we wrote a couple scripts to easily run only these tests, so that developers don't need to wonder too much what to run and how. This makes it easy to run quick diagnostics.
Another trick you can do is provide scripts to shard or parallelize the tests locally, to make it easier and faster to run everything.
Finally you can also skip the slowest tests for regular PRs and only run them for releases. Alternatively, assuming your modules and the software inside are well tested , you can run most of your subworkflow tests with stubs for regular PRs.Louis Le Nézet
11/20/2025, 1:01 PMAnabella Trigila
11/20/2025, 1:27 PMMaxime Garcia
11/20/2025, 1:29 PMMaxime Garcia
11/20/2025, 1:29 PM