2014-08-27 38 views
5

Benim casperjs'lerim cmd.exe (Windows 7, x64) 'da renklendirilemedi. ansicon'u takip ettim. ANSICON ANSICON yüklüyse renklendirilmiş çıktı alacak casperjscmd için renkleri etkinleştirme

Windows kullanıcıları yüklüyse

Birazdan anlasalardı, otomatik renkli belirtmektedir.

Herhangi bir fikir?

GÜNCELLEME

var casper = require('casper').create(), 
    utils = require('utils'), 
    http = require('http'), 
    fs = require('fs'), 
    colorizer = require('colorizer').create('Colorizer'); 

var xpath = require('casper').selectXPath; 

casper.start('http://google.com/').then(function(response) { 
    casper.echo('This is supposed to be green', 'INFO'); 
}); 

casper.run(); 

CMD:

C:\Users\itsme\Desktop>casperjs test test.js 
Test file: test.js 
This is supposed to be green 

C:\Users\itsme\Desktop>casperjs test test.js 
+1

Ansicon'u indirip yüklediniz mi? Kullanmak için hangi adımları attınız ve ne yaparsınız? –

+0

[ansicon] 'u indirdim (https://github.com/downloads/adoxa/ansicon/ansi160.zip),' C: 'altına koydum, ortam değişkenine (yol) x64 ekledim, 'ansicon'u çalıştırın. exe -i (çıktı yok), cmd kapalı ve tekrar açtı ve sonunda casper.echo ('yeşil mesaj', 'INFO'); Hiç renklerim yok – smarber

+0

'← [36m [bilgi] ← [39m [phantom] yeşil mesaj' veya sadece [bilgi] [phantom] yeşil mesaj 'gibi bir şey gördünüz mü?Casper'ın “verbose” seçeneğini true olarak ayarlıyor musunuz? –

cevap

2

cevap burada bitti: ANSI-Coloring Console Output with .NET

CasperJS ikili paket ile geliyor önceden derlenmiş x86 platformu hedefliyor casperjs.exe. Ne yazık ki, bu, ansicon'un x64 sürümlerinde bahsettiğiniz etkiye sahiptir.

Çözümleri:

C:\>cd casperjs\src 
C:\casperjs\src>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /platform:x64 casperjs.cs 

Kopya çıkan .exe:

  1. hızlı ve ağrısız x64 platformu için ansicon.exe
  2. x86 sürümünü yeniden derleyin casperjs.exe kullanın bin dizinine ve işiniz bitti.

2

Ben senin sorunun ortam değişkeni ANSICON Windows üzerinde ayarlanırsa casperjs testleri görmek olduğunu düşünüyorum ve bu set değilse çıktıyı renklendirmeye çalışmıyor. Ne yazık ki ansicon'u sizin yaptığınız şekilde kurduğunuzda, aslında bu değişkeni ortamda normal bir şekilde ayarlamaz. Bunun yerine, bir pencerenin ilk cmd.exe işleminin ortamında ayarlamak için bir ham hack kullanır, ancak yalnızca bu cmd işleminin değerini almaya çalışırsa kullanır. Normalde hiçbir şey ANSICON ortam değişkenini kullanmıyorsa, bu normalde o pencerede çalıştırılan diğer işlemlere (ör. casperjs) görünmeyeceği anlamına gelir.

bu o zaman yapmanız gereken casperjs çalıştırmadan önce ANSICON değişken ayarlanırsa sorun ise: Ayrıca setx ANSICON=foo kullanarak bu ortamın kalıcı bir parçası yapabilir

set ANSICON=%ANSICON% 

.

+0

Bu çözümü denedim ama çalışmadı – smarber

+0

Eğer 'setx' kullandıysanız, komut penceresini kapatmanız ve etkinleşmesi için yeni bir tane açmanız gerekecek. –

+0

Örneğinizin dizgenin olduğu yerde ikinci 'echo' çağrısı eklemeyi deneyin. "\ 033 [32mBu yeşil \ 033 [m" 'olması gerekiyordu. Bu çalışırsa, o zaman ansicon düzgün çalışıyor ve sorun casper.js ile. Eğer işe yaramazsa, muhtemelen ansicon'un bir nedenden dolayı çalışmamasıdır. –