5

我无法在我的 cmd.exe(Windows 7、x64)上着色我的 casperjs 断言。我跟着ansicon

如果我理解正确,如果安装了ansicon casperjs ,断言会自动着色

如果安装了 ansicon,Windows 用户将获得彩色输出。

有任何想法吗?

更新

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();

指令

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
4

2 回答 2

2

我认为您的问题是 casperjs 测试是否ANSICON在 Windows 上设置了环境变量,如果未设置,它不会尝试对输出进行着色。不幸的是,当您按照您的方式安装 ansicon 时,它实际上并没有以任何正常方式在环境中设置此变量。相反,它使用粗略的 hack 将其设置在cmd.exe窗口的初始进程的环境中,但前提是该cmd进程试图检索其值。由于通常没有任何东西使用环境变量,这意味着在该窗口中运行的ANSICON其他进程(例如)通常不会看到它。casperjs

如果这是问题所在,那么您需要做的就是ANSICON在运行之前设置变量casperjs

set ANSICON=%ANSICON%

您还可以使用setx ANSICON=foo.

于 2014-08-28T14:24:28.367 回答
2

答案就在这里:ANSI-Coloring Console Output with .NET

CasperJS 二进制包带有一个casperjs.exe针对 x86 平台的预编译。不幸的是,这具有您在 x64 版本的 ansicon 上提到的效果。

解决方案:

  1. 使用 x86 版本的ansicon.exe
  2. 为 x64 平台重新编译casperjs.exe,快速无痛:

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

将生成的 .exe 复制到bin目录中即可。

于 2015-12-07T11:29:47.620 回答