2017-10-06 2 views
0

Ich betreiben meinen e2e-Test Nightwatch RahmenVue.js kann ich ein Modul in einen e2e Test importieren? Syntaxfehler beim Import

In einem Test, ich brauche angezeigten Wert einen Browser zu überprüfen, Zurücksetzen auf einen definierten Anfangswert zu sein, setzen Sie als Konstante von einem config.js exportierte Datei

aber ich bekomme einen SYNTAX Fehler, wird es nicht akzeptiert?

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

sieht es so aus, als hätten Sie ein Problem in ES6. Stellen Sie sicher, dass Sie vor dem Ausführen von Tests mit Babel – OmranAbazid

+0

transpilieren, danke Omran! hab es jetzt richtig gemacht, du hast mich auf Spuren gesetzt .. siehe meine eigene Antwort – erwin

Antwort

0

Wie @Omran erwähnt, hatte ich Problem w ES6 transpiring ..

1 - muss vor dem einfügen Import (und schreiben auch einen richtigen Weg ...)

e2e/test.js

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

2 - e2e Test runner.js setzt:

process.env.NODE_ENV = 'testing' 

Ich sollte hinzufügen es in .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"] 
    } 
    } 
} 
Verwandte Themen