Skip to content
This repository has been archived by the owner on Jan 13, 2018. It is now read-only.

Look for alternatives to jscoverage #141

Closed
arikon opened this issue Jun 6, 2012 · 7 comments
Closed

Look for alternatives to jscoverage #141

arikon opened this issue Jun 6, 2012 · 7 comments

Comments

@arikon
Copy link
Contributor

arikon commented Jun 6, 2012

There are some problems with generated with jscoverage instrumented code. See visionmedia/node-jscoverage#15.

May be we should look for alternative to it.

There are some other tools:

Main task for code coverage is #118.

@ghost ghost assigned arikon Jun 6, 2012
@ghost ghost assigned afelix Jun 18, 2012
@afelix
Copy link
Contributor

afelix commented Jun 19, 2012

К сожалению, в CoverJS объект статистики не совместим по структуре с тем, что отдаётся JSCoverage, потому репортер Mocha (lib/reporters/json-cov.js:100) ничего полезного из него взять не может. Тем не менее, если брать в работу эту утилиту, можно будет написать репортер под формат.

@arikon
Copy link
Contributor Author

arikon commented Jun 19, 2012

От CoverJS мне нравится то, что он не строки считает, а отдельные выражения.
В остальном он как? Багу с рекурсивным инструментированием файлов удалось починить?

Репортер можно написать и протащить в upstream mocha.

@afelix
Copy link
Contributor

afelix commented Jun 19, 2012

Да я решил на этой баге пока не блокироваться. В наших тестах добавил в путь /lib/ и пошёл дальше гонять тулзу.
В остальном текущий статус:

  • Тесты с нашей instrumented apw/lib отрабатывают без ошибок, т.е. как минимум тут явных багов тулза не делает.
  • Объект статистики заполняется, полезная нам часть состоит из кода (копия оригинального до instrumented) и словарей вида {промежуток : кол-во вхождений}
'35:1296': 1,
'471:487': 6,
'498:666': 6,
'677:732': 6
  • Репортер у CoverJS свой и включается он немного коряво (в readme есть пример), надо навешиваться из JS-кода на global статистики, что с нашими тестами не согласуется, у нас нет одной точки запуска типа Suite, т.ч. тут в лоб не подсобачить.
  • Репортеры Mocha я почитал, посмотрел, как их делать, кажется более прямым и простым путём сразу же и начать писать. Аргумент: в том, что статистика собирается, можно убедиться и дампом статистики в лог (что я и сделал, вон пример выше), а репортер в любом случае писать, т.к. родной мы использовать ну очень вряд ли будем.

Резюмирую: пока явных граблей и "не-не, нафиг такое" нема. Хоть и альфа, но вполне рабочая. Да и код в ней простой, если что, можно править.

@afelix
Copy link
Contributor

afelix commented Jul 3, 2012

Был выбран CoverJS.

@afelix afelix closed this as completed Jul 3, 2012
@xseignard
Copy link

Hi, I'm investigating the same area, and your discussion popped out! But I can't understand russian :)

I tried node-jscoverage (https://github.com/visionmedia/node-jscoverage) and jscover(https://github.com/fengmk2/jscover).

I'm not satisfied with the first one, since I don't have the hand on what to install on my CI server. And I noticed some wrong instrumentation on the second one.

What was your final choice?

My final goal is to use Sonar to control quality of my node.js code during continuous integration. (http://www.sonarsource.org/).

I'll blog about it in few days. I'll let you know if interested.

Regards

Xavier

@xseignard
Copy link

I ended with istanbul. And your mocha-instanbul reporter. Thanks!

@arikon
Copy link
Contributor Author

arikon commented Apr 22, 2013

@xseignard You are welcome! ;)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants