diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 70839c462b404596d5023a9b4d2947975a030557..5d9bc626d9133a946d37a0c43664d3b260d2a88c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,7 +13,7 @@ test:
   script:
     - npm install
     - npm run build-dev
-    - npm test
+    - npm run test-full
 
 linting:
   stage: test
diff --git a/package.json b/package.json
index 1f24e9152d55dbcb0cc8b5d501aa519f0f72db99..1737e5bed415f41fb753d0f555aee17d0bc7470a 100644
--- a/package.json
+++ b/package.json
@@ -68,8 +68,9 @@
     "i18next": "i18next-scanner",
     "watch": "rollup -c --watch",
     "watch-local": "npm run watch",
-    "watch-full": "rollup -c --watch --environment WATCH_FULL",
+    "watch-full": "rollup -c --watch --environment FORCE_FULL",
     "test": "rollup -c --environment BUILD:test && karma start --singleRun",
+    "test-full": "rollup -c --environment FORCE_FULL,BUILD:test && karma start --singleRun",
     "lint": "eslint ."
   }
 }
diff --git a/rollup.config.js b/rollup.config.js
index eaa236ecff3a488ca0c27a88fb43f19c567a5faa..30dc8e136139269d41c4729987ac10f826101a9f 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -29,7 +29,8 @@ const USE_HTTPS = false;
 const pkg = require('./package.json');
 const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local';
 const watch = process.env.ROLLUP_WATCH === 'true';
-const watchFull = process.env.WATCH_FULL !== undefined;
+const buildFull = (!watch && build !== 'test') || (process.env.FORCE_FULL !== undefined);
+
 console.log("build: " + build);
 let basePath = '';
 let entryPointURL = '';
@@ -41,9 +42,9 @@ let keyCloakBaseURL = '';
 let keyCloakClientId = '';
 let pdfAsQualifiedlySigningServer = '';
 let matomoSiteId = 131;
-let useTerser = !watch || watchFull;
-let useBabel = !watch || watchFull;
-let checkLicenses = !watch || watchFull;
+let useTerser = buildFull;
+let useBabel = buildFull;
+let checkLicenses = buildFull;
 
 switch (build) {
   case 'local':