2017-10-06 6 views
0

Je tourne mon test e2e utilisant le framework NightWatchVue.js puis-je importer un module dans un test e2e? Erreur de syntaxe importation

Dans un test, je dois vérifier un navigateur valeur affichée pour être remis à une valeur initiale définie, définie comme une constante exportée d'un config.js mais je reçois une erreur SYNTAXE, n'est-elle pas acceptée?

Starting selenium server... started - PID: 49634 
There was an error while starting the test runner: 
../test/e2e/specs/test.js:4 
import { WORKING_TIME } from '@/config'; 
^^^^^^ 
SyntaxError: Unexpected token import at createScript (vm.js:74:10) 
    at Object.runInThisContext (vm.js:116:10) 
    at Module._compile (module.js:537:28) 
    at loader (../node_modules/babel-register/lib/node.js:144:5) 
    at Object.require.extensions.(anonymous function) [as .js] (/../node_modules/babel-register/lib/node.js:154:7) 
    at Module.load (module.js:507:32) 
    at tryModuleLoad (module.js:470:12) 
    at Function.Module._load (module.js:462:3) 
    at Module.require (module.js:517:17) 
    at require (internal/module.js:11:18) 

Config.js

let coeff = process.env.NODE_ENV === 'testing' ? 0.5 : 1 
export const WORKING_TIME = coeff * 60 

E2E/test.js

import { WORKING_TIME } from '@/config' 

module.exports = { 
    'check STOP event': (browser) => { 
    const devServer = browser.globals.devServerURL 
    browser.url(devServer).waitForElementVisible('#app', 5000) 
    browser.click('[title=start]').waitForElementVisible('i.toggle-volume', 5000) 

    // CLICK on STOP button 
    browser.click('[title=stop]').pause(1000) 
    ... 
    // Check timer is reset 
    const leftPad = (str, length = 10) => { 
     return `${' '.repeat(length)}${str}` 
    } 
    const min = Math.floor(WORKING_TIME/60) 
    const sec = WORKING_TIME % 60 
    const initialTimer = leftPad(min, 2) + ':' + leftPad(sec, 2) 
    browser.expect.element('.my-timer').text.to.equal(initialTimer) 
    browser.end() 
    } 
} 
+0

Il semble que vous ayez un problème avec ES6. Assurez-vous de transpiler avant d'exécuter des tests en utilisant babel – OmranAbazid

+0

merci Omran! Je l'ai eu tout de suite, vous m'avez mis sur les pistes ... voir ma propre réponse – erwin

Répondre

0

Comme @Omran mentionné, j'ai eu problème avec ES6 transpirante ..

1 - besoin d'insérer avant la l'importation (et écrire un bon chemin ...)

E2E/test.js

require('babel-core/register') 
import { WORKING_TIME } from '../../../config' 

2 - runner.js de test E2E réglage est-il:

process.env.NODE_ENV = 'testing' 

Je dois ajouter dans .babelrc

.babelrc

{ 
    "presets": [ 
    ["env", { 
     "modules": false, 
     "targets": { 
     "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 
     } 
    }], 
    "stage-2" 
    ], 
    "plugins": ["transform-runtime"], 
    "env": { 
    "test": { 
     "presets": ["env", "stage-2"], 
     "plugins": ["istanbul"] 
    }, 
    "testing": { 
     "presets": ["env", "stage-2"], 
     "plugins": ["istanbul"] 
    } 
    } 
}