Reputation: 356
I am trying to run my mocha tests from node . The ultimate goal is to add code-coverage via istanbul/blanket and generate a lcov file for input into sonar for code coverage.
This is a sample project on which I am trying https://github.com/rajarshigoswami/Todos
The mocha tests are under https://github.com/rajarshigoswami/Todos/tree/master/test/mocha
The tests are running from browser, but when I am trying via node, it wont pick up any of the spec files.
How to use : run : npm install then : grunt
My questions are :
Upvotes: 1
Views: 530
Reputation: 2010
your problem is that you are trying to test code that using requirejs
in order for the you mocha spec to work with phantom
and requirejs
on a grunt task runner you can use grunt-mocha-phantomjs
for you other issue of using istambol
check this link (this link is more suitable for your purpose because its use backbone also (-: )
Upvotes: 0
Reputation: 1639
I would change a few things. Simply add this to package.json
"scripts": {
"test":
"./node_modules/.bin/istanbul test ./node_modules/.bin/_mocha -- -R spec"
}
Now, when you do npm test
it runs mocha and istambul
This article will help you
Upvotes: 6
Reputation: 1928
There's a few options depending what you need to do:
1) So firstly it would be good to know what you actually mean by running tests in node? For example I use to mocha
to test server-side code for my node.js
applications. It just runs the tests without relying on any specific environment (except node.js
obviously). Without any other tools simply run mocha your/custom/test/directory/
(that assume your mocha
is installed globally).
So as long as your view test don't rely on being run in a Web Browser you're good.
2) If what you just want run your front-end tests without need of opening SpecRunner.html manually in a web browser, I highly recommend using karma
test runner, with a headless browser like PhantomJS
.
3) Finally if you already have the grunt
installed just grab the mocha-istanbul
npm module. The configuration is really simple:
mocha_istanbul: {
coverage: {
// where your tests leave
src: 'server/tests',
options: {
// instrument only spec files
mask: '*.spec.js',
// output a human readable website
// (along site regular test summary produced by mocha)
reportFormats: ['html']
}
}
}
So as you can see there are some options out there. Just grab the one that suits your project the best.
Upvotes: 2