Rajarshi Goswami
Rajarshi Goswami

Reputation: 356

Running mocha tests from node

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 :

  1. What am I missing or doing wrong here?
  2. How do I integrate blanket.js/istanbul to generate lcov files

Upvotes: 1

Views: 530

Answers (3)

Zamboney
Zamboney

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

emilioriosvz
emilioriosvz

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

op1ekun
op1ekun

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

Related Questions