Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set up unit testing #2046

Open
ewels opened this issue Sep 15, 2023 · 1 comment
Open

Set up unit testing #2046

ewels opened this issue Sep 15, 2023 · 1 comment

Comments

@ewels
Copy link
Member

ewels commented Sep 15, 2023

When we go through refactoring modules for v2.0, take the opportunity to also set up a proper unit testing framework.

Can dump more ideas here, but for example:

  • For each module, run a core set of tests:
    • On init, are mandatory variables set
    • On parse + ignore, does it return an exception because no data
    • ...

We can keep the main integration test of running MultiQC on everything, but a bunch of the additional tests that we currently have in the CI can almost certainly be better done as unit tests.

We also have various other sporadic mini-test scripts etc all over the place, so can consolidate those.

@ewels ewels added this to the MultiQC v2.0 milestone Sep 15, 2023
@ewels ewels mentioned this issue Sep 15, 2023
17 tasks
@vladsavelyev
Copy link
Member

Regarding the currently existing integration testing, there are several modules that fail when multiple incompatible inputs are passed (preseq, bclconvert), and they probably should make MultiQC exit with error code 1. It's not practical at the moment because that would make the integration test multiqc test_data/modules always fail, since we have mixture of inputs for those modules in MultiQC_TestData.

So I think it might makes sense to break up those modules into module groups, using the config with path_filters in the CI runs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants