2012-03-22 14 views
11

Cuando ejecuto Mocha, intenta mostrar una marca de verificación o una X para pasar o una prueba de prueba fallida, respectivamente. He visto imágenes de gran apariencia de la salida de Mocha. Pero esas capturas de pantalla fueron tomadas en Macs o Linux. En una ventana de consola en Windows, estos personajes aparecen como un carácter vacío, el clásico "¿eh?" glifo:¿Cómo puedo obtener la salida Unicode de Mocha para que se muestre correctamente en una consola de Windows?

Screenshot of Mocha in the Windows console, with a box character instead of the expected check mark

Si Resalto el texto en la ventana de la consola y copiar al portapapeles, veo caracteres Unicode reales; Puedo pegar los caracteres extravagantes en un cuadro de texto en un navegador web y funcionan bien (✔, ✖). De modo que la salida de Unicode está llegando a la ventana de la consola sin problemas; el problema es que la ventana de la consola no muestra esos caracteres correctamente.

¿Cómo puedo solucionar esto para que toda la salida de Mocha (incluidos los ✔ y ✖) se visualice correctamente en una consola de Windows?

Respuesta

7

Actualización: este problema ya se ha solucionado. A partir de Mocha 1.7.0, los retrocesos se utilizan para símbolos que no existen en las fuentes de la consola por defecto (√ en lugar de ✔, × en lugar de ✖, etc.). No es tan bonito como podría ser, pero seguramente supera los símbolos de marcador de posición de caja vacía.

Para más detalles, véase la solicitud de extracción relacionada: https://github.com/visionmedia/mocha/pull/641

+2

que en realidad es una respuesta mejor, más activo que el mío - que hace que sea Solo trabajo, en todas partes. Gracias por hacer que eso suceda! –

+0

Sin problemas mate :) ¡Vamos a rockear en Windows con Mocha ahora! – jsalonen

24

Al pegar los caracteres en LinqPad, pude deducir que eran 'HEAVY CHECK MARK' (U+2714) y 'HEAVY MULTIPLICATION X' (U+2716). Parece que ninguno de los caracteres es compatible con ninguna de las fuentes de consola (Consolas, Lucida Console o Raster Fonts) que están disponibles en Windows 7. De hecho, a partir de todos los las fuentes que se incluyen con Windows 7, solo un pequeño soporte estos personajes (Meiryo, Meiryo UI, MS Gothic, MS Mincho, MS PGothic, MS PMincho, MS UI Gothic y Segoe UI Symbol). Los que comienzan con "MS" son todos de ancho fijo (monoespacio), pero todos se ven mal en los tamaños de fuente típicos de una consola. Y los otros están fuera, ya que la consola requiere fuentes de ancho fijo.

Así que tendrá que descargar una fuente. Me gusta DejaVu Sans Mono - es gratis, se ve bien en tamaños de consola, es fácil decir 0 desde O y 1 desde I desde l, y tiene todo tipo de símbolos Unicode de fantasía, incluyendo el cheque y X que Mocha usa.

Sample of the DejaVu Sans Mono font

Por desgracia, es un poco de dolor para instalar una nueva fuente de la consola, pero es factible. (Pasos adaptados de this post by Scott Hanselman, pero ampliarse para incluir las sutilezas no evidentes de 000.)

Pasos:

  1. Download the DejaVu fonts. descomprimir los archivos. Vaya al directorio "ttf" que acaba de descomprimir, seleccione todos los archivos, haga clic derecho e "Instalar".
  2. Ejecute Regedit, y vaya al HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont.
  3. Agregue un nuevo valor de cadena. Dale un nombre que sea una cadena de ceros más larga que la cadena de ceros más larga que ya existe. Por ejemplo, en mi instalación de Windows 7, ya hay un valor llamado 0 y uno llamado 00, así que tuve que nombrar el nuevo 000.
  4. Haga doble clic en su nuevo valor y establezca su valor en DejaVu Sans Mono.
  5. Reinicio. (Sí, este paso es necesario, al menos en sistemas operativos hasta e incluyendo Windows 7.)
  6. Ahora puede abrir una ventana de consola, abrir el menú de la ventana, ir a Predeterminados> ficha Fuente, y "DejaVu Sans Mono" debería estar disponible en el cuadro de lista Fuente. Selecciónelo y OK.

Ahora la salida de Mocha se mostrará en todo su esplendor.

Screenshots of Mocha output displaying correctly in a Windows console

+0

El reinicio era no requerida para mí en Windows 7 – xori

+0

No es necesario reiniciar en Windows 10 o bien – user1740331

Cuestiones relacionadas