2013-08-21 8 views
5

Ich befolge die Dokumentation auf writing a module with casperjs, aber ich bekomme einen Fehler.Verwendung von Require mit Casperjs gibt "Kann Modul nicht finden" erorr

Der Code, direkt aus der Dokumentation:

// my module, stored in universe.js 
// patching phantomjs' require() 
var require = patchRequire(require); 

// now you're ready to go 
var utils = require('utils'); 
var magic = 42; 
exports.answer = function() { 
    return utils.format("it's %d", magic); 
}; 

Und das aufrufende Skript:

var universe = require("./universe"); 
var casper  = require("casper").create(); 


console.log(universe.answer()); 

casper.test.begin("Home Page", 1, function suite(test) { 

}); 

Aber ich folgende Fehlermeldung erhalten:

casperjs test testStage.js 
Test file: testStage.js 
CasperError: Can't find module ./universe 
    /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214 in patchedRequire 
    /Users/smosk/Google Drive/source/nest/testStage.js:1 
FAIL CasperError: Can't find module ./universe 
# type: error 
# file: testStage.js 
# subject: false 
# error: "CasperError: Can't find module ./universe" 
# stack: in patchedRequire() in /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214 
in anonymous() in testStage.js:1 
FAIL 1 test executed in 0.031s, 0 passed, 1 failed, 0 dubious, 0 skipped. 

Details for the 1 failed test: 

In testStage.js 
    Untitled suite in testStage.js 
    error: CasperError: Can't find module ./universe 

auch versucht, zuerst definiert casper :

var casper  = require("casper").create(); 
var universe = require("./universe"); 

Aber das führt nur in

Test file: testStage.js 
CasperError: Can't find module ./universe 
    /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214 in patchedRequire 
    /Users/smosk/Google Drive/source/nest/testStage.js:2 

Antwort

5

Sie sollten versuchen, auf das neueste Master-Build von CasperJS wie diese pull request zu aktualisieren, die ich gemacht soll das Problem beheben, das Sie haben.

Wenn Sie jedoch nicht aktualisieren möchten, können Sie auch versuchen, CasperJS mit dem folgenden ausgeführt wird:

casperjs test ./testStage.js 
4

für andere, die ein Idiot wie ich auch sein mag, Sie sicherstellen möchten, können Sie casperjs in Ihrem cmd und nicht PhantomJS

1

Ich habe gerade die letzten 2 Stunden verwenden versuchen, debuggen sie dieses Problem:

C:\casperjs>casperjs 
CasperError: Can't find module cli 

    C:\casperjs\bin\bootstrap.js:262 in patchedRequire 
    C:\casperjs\bin\bootstrap.js:375 
    C:\casperjs\bin\bootstrap.js:395 

ich war mit PhantomJS 1.9.0 aber ich fand, musste ich 1.9.2 aktualisieren und es begann sofort mit der Arbeit. Ich hoffe, das ist hilfreich für jemand anderen.

+0

also ist die Schlussfolgerung, ... phantomJS 1.9.2 arbeitet nur mit Casperjs 1.1 und nicht die niedrigere Version von ihnen? @Steve Rukuts – gumuruh

+0

Es tut mir leid @gumuruh, aber ich bin mir jetzt unsicher. Ich denke, das ist richtig, aber ich habe CasperJS seit einiger Zeit nicht mehr benutzt. Wenn Sie sich das Datum ansehen, an dem Sie bemerken, dass der fragliche Beitrag fast 3 Jahre alt ist, würde ich mir sicherlich die neuere Dokumentation ansehen. –