# pipeline level nf-test assertion reference ## Checking the presence of strings in a file ### Checking the presence of an exact line in a file Search for a string (or regex) in an output file and check for an exactly matching line. ``` assertAll { { assert snapshot( )} } ``` ## Checking number of rows of a file ### Checking the exact number of rows The below tests should all go _inside_ the `assert snapshot()` block so that the output becomes part of the snapshot, testing matching output. ``` assertAll { { assert snapshot( // Test the number of lines in a non-gzipped tsv file file(process.out.tsv).readLines.size(), // and in a gzipped tsv file("${params.outdir}/process/file.tsv.gz").linesGzip.size() ).match() } } ``` ### Checking a minimum number of rows For files that don't have a stable number of rows, but you want to make sure they're of a minimum size ``` assertAll { // Check that a gzipped file contains a minimum of 3000 lines { assert path("${params.outdir}/process/another_file.tsv.gz").linesGzip.size > 3000 } }