diff --git a/workflow/main.nf b/workflow/main.nf
index f89abdb7391ccbf43ec279d2b83524abd20adb8c..2a210bbb74d7b1490a33d6a0510b4907688fae1d 100644
--- a/workflow/main.nf
+++ b/workflow/main.nf
@@ -487,6 +487,8 @@ process diffPeaks {
 // Collect Software Versions and references
 process softwareReport {
 
+  publishDir "$outDir/${task.process}", mode: 'copy'
+
   input:
 
   file trimReads_vf from trimReadsVersions.collect()
diff --git a/workflow/tests/test_generate_software_references.py b/workflow/tests/test_generate_software_references.py
new file mode 100644
index 0000000000000000000000000000000000000000..1aeb6d3c862290cf327fa44449d9b12cbc4e0979
--- /dev/null
+++ b/workflow/tests/test_generate_software_references.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import pytest
+import os
+import utils
+
+test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
+                '/../output/softwareReport/'
+
+
+@pytest.mark.singleend
+def test_software_references():
+    assert os.path.exists(os.path.join(test_output_path, 'software_references_mqc.txt'))
+
+
+@pytest.mark.singleend
+def test_nextflow_version():
+    assert os.path.exists(os.path.join(test_output_path, 'version_nextflow.txt'))
+
+
+@pytest.mark.singleend
+def test_software_versions():
+    assert os.path.exists(os.path.join(test_output_path, 'software_versions_mqc.yaml'))
+
+
+@pytest.mark.singleend
+def test_software_versions_output():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 15
+
+
+@pytest.mark.singleskip_true
+def test_software_versions_output_rep():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 13
diff --git a/workflow/tests/test_generate_software_versions.py b/workflow/tests/test_generate_software_versions.py
new file mode 100644
index 0000000000000000000000000000000000000000..77489a8c14ecf45c3ec90bd8b353b090ae7215fb
--- /dev/null
+++ b/workflow/tests/test_generate_software_versions.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+
+import pytest
+import os
+import utils
+
+test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
+                '/../output/softwareReport/'
+
+
+@pytest.mark.singleend
+def test_software_versions():
+    assert os.path.exists(os.path.join(test_output_path, 'software_versions_mqc.yaml'))
+
+
+@pytest.mark.singleend
+def test_software_versions_output():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 15
+
+
+@pytest.mark.singleskip_true
+def test_software_versions_output_rep():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 13