2015-09-15 2 views
0

Я использую Emacs для разработки JavaScript (Node.js). Мокка для тестирования. Я бег мокко с замыкающим и вот мой Makefile:Emacs для компиляции Java-тесты

REPORTER=spec 
MOCHA_OPTS=--ui bdd --timeout 2000 --colors 

test: 
    @NODE_ENV=test \ 
    ./node_modules/mocha/bin/mocha \ 
    --reporter $(REPORTER) \ 
    $(MOCHA_OPTS) \ 
    test/*.js 

С Emacs компилировать он запускает тест хороший, но вот выход:

#Category API 
[0G ✓ should create a category (378ms) 
[0G ✓ should get category list (282ms) 
[0G ✓ should get category (213ms) 
[0G ✓ should verify category permissions (211ms) 
[0G ✓ should edit category (454ms) 
[0G ✓ should verify category (218ms) 
[0G ✓ should remove category (242ms) 

Есть ли способ, чтобы удалить этот уродливый [0г с выхода ?

+0

Те '[0G', вероятно, являются частью управляющих последовательностей, отправленных в Emacs, при неправильном предположении, что мокко выполняется в эмуляторе терминала, который является не тот случай. Вероятно, вы могли бы организовать буферизацию, чтобы распознать эти escape-последовательности и удалить их. Это говорит, почему у вас есть '--colors' в вашем' MOCHA_OPTS'? Это может быть причиной того, что мокко отправляет эти escape-последовательности. – Stefan

+0

Я думаю, что это ANSI управляющие последовательности и то, что вы ищете это: http://stackoverflow.com/questions/13397737/ansi-coloring-in-compilation-mode – andygavin

+0

'--colors' не является проблемой, Я раскрашиваю буфер компиляции. Эти escape-последовательности являются проблемой. Думаю, мне пришлось вручную избавиться от них. – jvillasante

ответ

0

Мокко пытается определить, он работает с TTY, и если да, это позволит журналистам на выходе ANSI последовательностей. Изменение --colors на --no-colors помогло бы, но только частично. Дело в том, что некоторые репортеры пытаются перемещать курсор tty и все равно будут выводить последовательности ANSI даже при выключенном цвете. Нет никакого флага, чтобы заставить мокку рассматривать его вывод как не-tty. Тем не менее, вы можете достичь того же результата с:

$ mocha | cat 

Если вы хотите Makefile, который не будет выводить ANSI-последовательности, когда вызывается внутри Emacs, но будет работать «нормально» на улице, вы можете сделать это:

REPORTER=spec 
MOCHA_OPTS=--ui bdd --timeout 2000 $(if $(INSIDE_EMACS),--no-colors,--colors) 

.PHONY: test 
test: 
    @NODE_ENV=test \ 
    ./node_modules/mocha/bin/mocha \ 
    --reporter $(REPORTER) \ 
    $(MOCHA_OPTS) \ 
    test/*.js $(and $(INSIDE_EMACS),| cat) 

INSIDE_EMACS определяется Emacs.

+0

Эта работа отлично. Один вопрос. Эти тесты будут выполняться командой, и никто здесь не использует emacs, есть ли способ распознать, что make в настоящее время вызывается внутри emacs и добавляет '| фильтр cat' только внутри emacs? Спасибо за ваш ответ. – jvillasante

+0

Я отредактировал свой ответ. Обратите внимание, что мой предыдущий ответ имел ошибку: '--color' заставляет Mocha выводить цвета, даже если вы используете' | cat'. В этом случае make-файл справляется с этим, изменяя «MOCHA_OPTS». – Louis

+0

Он работает отлично. Благодаря! – jvillasante

Смежные вопросы