diff --git a/dev/tests/js/jasmine/spec_runner/index.js b/dev/tests/js/jasmine/spec_runner/index.js
index ce57b6c354cb98a4ab48e6043fc8648d8f9f040b..d8329bb35178fefc23ca9d68fc4047a432e98a31 100644
--- a/dev/tests/js/jasmine/spec_runner/index.js
+++ b/dev/tests/js/jasmine/spec_runner/index.js
@@ -13,38 +13,14 @@ function init(grunt, options) {
         stripJsonComments   = require('strip-json-comments'),
         path                = require('path'),
         config,
-        themes;
-        
+        themes,
+        file;
+
     config = grunt.file.read(__dirname + '/settings.json');
     config = stripJsonComments(config);
     config = JSON.parse(config);
 
-    //themes = require(path.resolve(process.cwd(), config.themes));
-    //TODO: MAGETWO-39843
-    themes = {
-        blank: {
-            area: 'frontend',
-            name: 'Magento/blank',
-            locale: 'en_US',
-            files: [
-                'css/styles-m',
-                'css/styles-l',
-                'css/email',
-                'css/email-inline'
-            ],
-            dsl: 'less'
-        },
-        backend: {
-            area: 'adminhtml',
-            name: 'Magento/backend',
-            locale: 'en_US',
-            files: [
-                'css/styles-old',
-                'css/styles'
-            ],
-            dsl: 'less'
-        }
-    }
+    themes = require(path.resolve(process.cwd(), config.themes));
 
     if (options.theme) {
         themes = _.pick(themes, options.theme);
@@ -54,6 +30,12 @@ function init(grunt, options) {
 
     config.themes = themes;
 
+    file = grunt.option('file');
+
+    if (file) {
+        config.singleTest = file;
+    }
+
     enableTasks(grunt, config);
 }
 
diff --git a/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js b/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
index ccd21fafe33b9220f3203bf4fa0697ad2abc2d2f..99f05198000ec2d3b400c4f8269435e40a7d3fe7 100644
--- a/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
+++ b/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
@@ -16,7 +16,6 @@ function init(config) {
     root         = config.root;
     port         = config.port;
     files        = config.files;
-    host         = _.template(config.host)({ port: port });
     themes       = config.themes;
 
     _.each(themes, function (themeData, themeName) {
@@ -26,7 +25,13 @@ function init(config) {
 
         _.extend(themeData, { root: root });
 
+        host    = _.template(config.host)({ port: port++ });
         render  = renderTemplate.bind(null, themeData);
+
+        if (config.singleTest) {
+            files.specs = [config.singleTest];
+        }
+
         specs   = files.specs.map(render);
         specs   = expand(specs).map(cutJsExtension);
         configs = files.requirejsConfigs.map(render);