diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index dfcba0f5f869899d80d1e019d80a65f8047c2de9..bdb2c7f4206e55a535eaf638272f2feca4d33bf8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -39,7 +39,7 @@ unit-test-job:
     paths:
       - errors.log
     reports:
-      junit: nosetests.xml
+      junit: nose2-junit.xml
 
 pylint-test-job:
   stage: test
diff --git a/Makefile b/Makefile
index 24074e6421510828611f959b86994c6ee31169f2..a991c470963fdb3b77fe3f570418ecd73003066f 100644
--- a/Makefile
+++ b/Makefile
@@ -158,7 +158,7 @@ pylint-test: FORCE
 
 test: FORCE
 	@echo "\n${GREEN}*** Checking code with nosetests ***${NC}\n"
-	@python3 -W always::DeprecationWarning -m nose test_idea.py --with-xunit
+	@python3 -W always::DeprecationWarning -m nose2 --junit-xml
 
 
 #-------------------------------------------------------------------------------
diff --git a/nose2.cfg b/nose2.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a7850f000fd8fb9a4b96d43d4bb81e8122cdc388
--- /dev/null
+++ b/nose2.cfg
@@ -0,0 +1,2 @@
+[unittest]
+plugins = nose2.plugins.junitxml
diff --git a/requirements-dev.pip b/requirements-dev.pip
index 40ac01bc8e600249217704e4d5b5f6bf9334bd32..0ce119ace62f0f73a3d428644956f1f19d7710e6 100644
--- a/requirements-dev.pip
+++ b/requirements-dev.pip
@@ -4,7 +4,7 @@ setuptools
 wheel
 twine
 docutils<0.18
-nose==1.3.7
+nose2==0.11.0
 pyflakes==2.1.0
 pylint==2.2.2
 sphinx==1.8.4