2016-10-01 3 views
2

Probe CasperJs Test:CasperJs ausführen nicht vollständig von PHP

casper.test.begin('Hello, Test!', 1, function(test) { 
    test.assert(true); 
    test.done(); 
}); 

Ergebnis Linux Befehlsausführung:

# casperjs test /bin/casper-test.js 
Test file: /bin/casper-test.js 
# Hello, Test! 
PASS Subject is strictly true 
PASS Hello, Test! (1 test) 
PASS 1 test executed in 0.026s, 1 passed, 0 failed, 0 dubious, 0 skipped. 

Ergebnis PHP:

<?php 
echo exec('casperjs test /path/to/casper-test.js'); 
?> 
[37;42;1mPASS 1 test executed in 0.024s, 1 passed, 0 failed, 0 dubious, 0 skipped. [0m 

Wie Sie es sehen zeigt nur die letzte Zeile des Linux-Befehls (korrekt).
Irgendwelche Ideen?

+0

Seien Sie sicher, indem Sie auf das kleine Kästchen, eine Antwort zu akzeptieren, wenn es richtig ist, und gegebenenfalls bis Abstimmung, danke! – Clay

+0

@Clayton Smith Sicherlich, vielen Dank für Ihre vollständige Antwort. – SAM

Antwort

1

Schauen Sie sich die Dokumentation für exec:

http://php.net/manual/en/function.exec.php

Zeichenfolge exec (string $ command [, array & $ output [, int & $ return_var]])

zu erfassen Sie die gesamte Ausgabe, sollten Sie in der Lage sein, etwas wie folgt zu tun:

exec('casperjs test /path/to/casper-test.js 2>&1', $output, $return_var); 
var_dump($output); 
var_dump($return_var); 

Wenn Sie den Befehl 2>&1 an Ihren Befehl senden, werden die Werte STDERR und STDOUT umgeleitet und in der Variablen $output erfasst.

Auch bemerkte ich, dass die Ausgabe scheint, es für die Ausgabe auf der Shell zu kolorieren, das ist, was die [37;42; Zeichenfolge ist. Nach der Dokumentation, es sieht aus wie Sie --no-colors auf Ihren Befehl hinzufügen können die kolorierte Ausgabe zu deaktivieren:

casperjs test --no-colors /path/to/casper-test.js 2>&1 
Verwandte Themen