2015-09-10 12 views
6

Ich habe seit einer Weile gelesen, und ich kann nicht richtig scheinen. Ich habe eine Datei mit meinen Skripten darin login_process.js und eine andere Datei, die Modulfunktionen hat, muss ich benötigen routines.js.Casper js erfordern Modul

Ich bekomme immer einen Parse-Fehler auf der Linie var routine = require('../routines');. Ich denke, das bedeutet, der Fehler könnte in der Datei routines.js aber Knoten (verwendet, um Syntax zu testen) und jshint sagen mir nur, dass casper und die anderen Bibliotheken sind undefined (dh phantomjs, erfordern ect).

Die Dateien sind wie folgt: routines.js:

var require = patchRequire(require); 
var casper = require('casper').create(); 

exports.login = function(email, pass, test) { 
    casper.then(function() { 
     this.withFrame(0, function() { 
      this.waitUntilVisible('form#login-form', function() { 
       this.fill('form#login-form', { 
        email: email, 
        password: pass 
       }, false); 
      }); 
     }); 
    }); 
    casper.then(function(){ 
     casper.withFrame(0, function() { 
      this.click("#modalButtonLogin"); 
     }); 
    }); 
}; 

exports.signup = function(first_name, last_name, email, pass, other_pass, test) { 
    casper.then(function() { 
     this.withFrame(0, function() { 
      this.waitUntilVisible('form#signup-form', function() { 
       this.fill('form#signup-form', { 
       first_name: first_name, 
       last_name: last_name, 
       login: email, 
       password: pass, 
       re_enter_password: 'pass' 
      }, false); 
      }); 
     }); 
    }); 
    casper.then(function(){ 
     casper.withFrame(0, function() { 
      this.click("#modalButton"); 
     }); 
    }); 
}; 

login_process.js:

// var require = patchRequire(require); 
var routine = require('../routines'); 

casper.test.begin('Logs in', 1, function(test) { 

    var fs = require('fs') 
    var data = fs.read('../cookies.txt'); 
    phantom.cookies = JSON.parse(data); 

    casper.start("https://web.witkit.com/#") 

    .wait(1000, function(){ 
     routine.login('****@witkit.com', '******', test); 
    }) 

    .wait(1000, function(){ 
     this.withFrame(0, function() { 
      test.assertExists('.wkKitTitle'); 
     }); 
    }) 

    .then(function(){ 
     phantom.clearCookies(); 
     casper.echo(JSON.stringify(routine.login)+ "here") 
    }) 

    .run(function() { 
     test.done(); 
    }); 

}); 

casper.test.begin('Wrong login warning', 2, function(test) { 

    casper.start("https://web.witkit.com/#") 

    .then(function(){ 
     phantom.clearCookies(); 
    }) 

    .wait(1000, function(){ 
     routine.login('****@witkit.com', '******', test); 
    }) 

    .wait(1000, function(){ 
     this.withFrame(0, function() { 
      test.assertExists('.wkErrorMessageText'); 
      test.assertSelectorHasText('.wkErrorMessageText', 'Wrong email or password'); 
     }); 
    }) 

    .then(function(){ 
     phantom.clearCookies(); 
    }) 

    .run(function() { 
     test.done(); 
    }); 

}); 


casper.test.begin('Directs to correct url on form submission', 2, function(test) { 

    casper.start("https://web.witkit.com/#") 

    .then(function(){ 
     test.assertUrlMatch('https://web.witkit.com/#') 
    }) 

    .wait(1000, function(){ 
     routine.login('*******@witkit.com', '**', test); 
    }) 

    .wait(1000, function(){ 
     test.assertUrlMatch('https://web.witkit.com/#kit/176********') 
    }) 

    .then(function(){ 
     phantom.clearCookies(); 
    }) 

    .run(function() { 
     test.done(); 
    }); 

}); 

Ausgang:

Test file: login_process.js 
SyntaxError: Parse error 
FAIL SyntaxError: Parse error 
# type: error 
# file: login_process.js 
# subject: false 
# error: "SyntaxError: Parse error" 
# stack: 
# Logs in 
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)') 
# type: uncaughtError 
# file: login_process.js:13 
# error: 'undefined' is not a function (evaluating 'routine.login('*******@witkit.com', '*****', test)') 
#   TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)') 
#    at login_process.js:13 
#    at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034) 
# stack: not provided 
# Wrong login warning 
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('****@witkit.com', '****', test)') 
# type: uncaughtError 
# file: login_process.js:42 
# error: 'undefined' is not a function (evaluating 'routine.login('****@witkit.com', '****', test)') 
#   TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)') 
#    at login_process.js:42 
#    at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034) 
# stack: not provided 
# Directs to correct url on form submission 
PASS Current url matches the provided pattern 
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)') 
# type: uncaughtError 
# file: login_process.js:72 
# error: 'undefined' is not a function (evaluating 'routine.login('******@witkit.com', '******', test)') 
#   TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)') 
#    at login_process.js:72 
#    at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034) 
# stack: not provided 
FAIL 5 tests executed in 4.196s, 1 passed, 4 failed, 0 dubious, 0 skipped. 

Details for the 4 failed tests: 

In login_process.js 
    Untitled suite in login_process.js 
    error: SyntaxError: Parse error 
In login_process.js:13 
    Logs in 
    uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('******@witkit.com', '******', test)') 
In login_process.js:42 
    Wrong login warning 
    uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('*****@witkit.com', '*****', test)') 
In login_process.js:72 
    Directs to correct url on form submission 
    uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('*****@witkit.com', '*****', test)') 
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/local/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match. 
+0

CasperJS ist ein eigenständiges Programm. Es hat nichts mit node.js zu tun. Wie läuft es dir? –

+0

@ ArtjomB. Ich benutze Knoten, um es für Tests auf Syntaxfehler zu überprüfen, wenn es fehlschlägt (jemand schlug vor, ich mache das und es funktioniert ziemlich gut), dann verwende ich grunt-casper, um alle Tests auszuführen. Aber wenn ich im Debugging bin, führe 'casperjs test login_process.js --engine = phantomjs' von der Kommandozeile aus – ReganPerkins

+0

Benutze eslint o.ä., um festzustellen, wo der Syntaxfehler liegt. –

Antwort

Verwandte Themen