私はしばらく読んでいましたが、私はこの権利を得ることはできません。私はそれにスクリプトを持ったファイルを持っています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.
CasperJSはスタンドアロンプログラムです。 node.jsとは何の関係もありません。どのようにあなたはそれを実行していますか? @ArtjomB。 –
私はそれが失敗したときに構文エラーのためのテストをチェックするためにそれを実行するためにノードを使用します(誰かが私がこれを行い、それはかなりうまくいくと示唆しています)、次にgrunt-casperを使ってすべてのテストを実行します。しかし私がデバッグするとき、私は 'casperjs test login_process.js --engine = phantomjs'をコマンドラインから実行します。 – ReganPerkins
eslintなどを使用して、構文エラーの場所を特定します。 –