2015-09-10 20 views
6

私はしばらく読んでいましたが、私はこの権利を得ることはできません。私はそれにスクリプトを持ったファイルを持っていますlogin_process.jsとモジュールの機能を持っている別のファイルroutines.jsが必要です。キャスパーjsモジュールが必要です

var routine = require('../routines');行に解析エラーが発生します。これは、エラーがroutines.jsファイルにあるが、ノード(構文のテストに使用された)にある可能性があり、jshintは、casperと他のライブラリが定義されていない(つまり、phantomjs、ectを必要としている)

次のようにファイルがある: 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(); 
    }); 

}); 

出力:

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はスタンドアロンプ​​ログラムです。 node.jsとは何の関係もありません。どのようにあなたはそれを実行していますか? @ArtjomB。 –

+0

私はそれが失敗したときに構文エラーのためのテストをチェックするためにそれを実行するためにノードを使用します(誰かが私がこれを行い、それはかなりうまくいくと示唆しています)、次にgrunt-casperを使ってすべてのテストを実行します。しかし私がデバッグするとき、私は 'casperjs test login_process.js --engine = phantomjs'をコマンドラインから実行します。 – ReganPerkins

+0

eslintなどを使用して、構文エラーの場所を特定します。 –

答えて

関連する問題