2014-01-13 8 views
5

Der Fehler Aufruf:Casperjs "casper.test Eigenschaft ist nur verfügbar, mit dem` casperjs test` Befehl" aber nicht casper Test

casper.test property is only available using the `casperjs test` command 

Gesuchter meine ganze Code-Basis für "casper.test",„this.test "," @test "usw., und keine sind vorhanden. Wenn Sie sich den Casper-Code ansehen, muss einer davon ausgelöst werden, damit dieser Fehler ausgelöst wird.

Der Fehler tritt nur sporadisch auf und tritt nur bei einigen Casper-Läufen auf. Hat noch jemand diesen Fehler bekommen? Ich betreibe 1.1.0-beta3.

Antwort

4

Haben Sie Ihr Skript so gestartet?

casperjs test yourScript.js

+0

Nein, ich verwende nur 'casperjs script.js' – maxko87

+0

Wenn Gebrauch' casperjs yourScript.js' testen, wird es zu einem Fehler führen 'Fatal: Sie die vorkonfigurierte casper Instanz in einem Test environment.' Es ist nicht außer Kraft setzen kann –

9

Sie können

phantom.casperTest = true; 

an der Spitze der Testdatei hinzuzufügen.

+0

hat mir geholfen! – andrepm

+0

Ich mag diese Lösung nicht, auch wenn es funktioniert. Es klingt wie "Test" und Nicht-Test sind aus einem bestimmten Grund getrennt. Wenn Sie keinen Test verwenden, sollten Sie dies nicht tun. Liege ich falsch? Ich brauchte eine Weile, um herauszufinden, was das bei mir verursacht hat. Möglicherweise müssen Sie es ignorieren oder einen speziellen Handler dafür erstellen. –

0

Es hat nichts damit zu tun, es zu starten. Nicht sicher, warum, aber ich habe auch diesen Fehler in meinem Code vor dem Schreiben in die Datei erhalten. Es ging weg nach dem Entfernen ...

JSON.stringify(obj); 

Wieder, weiß ich nicht, was das Problem verursacht. Und es könnte etwas anderes sein, das es für dich verursacht. Aber wenn Sie herausfinden, welches Stück Code das verursacht, habe ich eine Lösung.

Meine Lösung: Verwenden Sie einen Handler für Fehler mit einem grundlegenden Variablenschalter und deaktivieren Sie das Fehlerprotokoll für diesen Teil des Schritts.

casper.on("error", function(err) { 
    if(custLog) {console.log(err);} //log the error 
}); 

und im Schritt ...

casper.then(function() { 
    custLog = false; 
    fs.write(fileName, JSON.stringify(content), 'w'); 
    custLog = true; 
}); 

Sie müssen möglicherweise nicht dort den Neuordnungs den inneren Stapel bestellen.