Ammar Aziz
01/20/2026, 6:35 AMsars-cov-2). In the test file I have a this setup block
setup {
run("NEXTCLADE_DATASETGET") {
script "../modules/nf-core/nextclade/datasetget/main.nf"
process {
"""
input[0] = 'nextstrain/sars-cov-2/wuhan-hu-1/orfs'
input[1] = '2024-01-16--20-31-02Z'
"""
}
}
}
But I'm unsure how I can back reference this in conf/test.config. How do I test a pipeline that requires the above?Arthur
01/20/2026, 6:47 AMAmmar Aziz
01/20/2026, 6:51 AMparams.nextclade must be a path or a string. This needs to be specified in conf/test.configAmmar Aziz
01/20/2026, 6:52 AMconf/test.config that reflects the setup block in the test file?Arthur
01/20/2026, 7:03 AMsetup is intended to help for modules/subworkflows that are designed to take input that is typically chained from another module, not to give some method to pre-download external dependencies outside of a pipeline under test.
If that’s the case then I think what you are trying to achieve is essentially:
when {
params {
nextclade = NETXCLADE_DATASET.out.dataset.value
But of course this would never work.Arthur
01/20/2026, 7:05 AMparams.nextclade is meant to be a dataset name and not a path then surely you can just hardcode it to a sars-cov-2 or whatever and I don’t know why you’d even need the setup process in that case because presumably the pipeline itself is downloading the dataset?Ammar Aziz
01/20/2026, 7:07 AMI think I am still missing something. If nextclade runs as part of the pipeline, then why is it being run in the setup? Is it just to pre-download the reference data?It's not run as part of the standard pipeline, the user has to specify it.
Ammar Aziz
01/20/2026, 7:08 AMsars-cov-2 in test.configAmmar Aziz
01/20/2026, 7:08 AMArthur
01/20/2026, 7:08 AMArthur
01/20/2026, 7:09 AMAmmar Aziz
01/20/2026, 7:09 AMsars-cov-2 is actually telling nextclade to download the latest, which changes frequently. I guess the output itself is not that important, only that the output exists.Ammar Aziz
01/20/2026, 7:10 AMWhat happens if the user doesn’t specify it? Does it just not run, does it need to specify some other param?It does not run if the user does not specify
--nextcladeAmmar Aziz
01/20/2026, 7:10 AMAFAIK theThis is important info, thanks.is intended to help for modules/subworkflows that are designed to take input that is typically chained from another module, not to give some method to pre-download external dependencies outside of a pipeline under test.setup
Arthur
01/20/2026, 7:13 AMparams.nextclade was set it would run again in the pipeline anyway as that just controls if it runs or not, and there isn’t actually a param to pass in a pre-downloaded dataset?Ammar Aziz
01/20/2026, 7:14 AMsetup block becomes redundant if params.nextclade is specified.Arthur
01/20/2026, 7:15 AMsetup do? Because surely the actual nextclade never runs if the param is unsetAmmar Aziz
01/20/2026, 7:15 AMnextclade to run.Ammar Aziz
01/20/2026, 7:16 AMparams.nextclade in conf/test.config is the simplest solution. I was overthinking it.Arthur
01/20/2026, 7:16 AMAmmar Aziz
01/20/2026, 7:17 AMAmmar Aziz
01/20/2026, 7:17 AMArthur
01/20/2026, 7:18 AMtag input of your pipeline’s implementation of nextclade_datasetget and use that to fix the version pulled in for the tests (exposing it is probably good anyway I would have thought)
• expose a way to pass in a pre-downloaded dataset, which you would still need to fetch for your tests some other way than setup
Even if you do have a way to pin the version of the dataset that is used in tests it might still be good to test the latest version anyway (perhaps without checking the md5sum of relevant outputs stay the same) because if that’s mostly how the pipeline is run, then you want to check it’s not broken