5

I am using mocha to unit test my js code which is using babel also. I am using nyc to do coverage. But in the end, the result is showing empty.

bash output

Why does it show All files 0 even though my test file is requiring redux.js and number-reducer.js files ?

my test script inside package.json is

{
  ...
  "scripts": {
    ...
    "test": "cross-env NODE_ENV=test npm run lint && nyc --reporter=lcov --reporter=text mocha",
    "coverage": "nyc report --reporter=text-lcov | coveralls"
  },
   ...
  "devDependencies": {
    "@babel/core": "~7.3.4",
    "@babel/preset-env": "~7.3.4",
    "@babel/register": "~7.0.0",
    "babel-loader": "~8.0.5",
    "babel-plugin-istanbul": "~5.1.1",
    "babel-polyfill": "~6.26.0",
    "chai": "~4.2.0",
    ...
    "cross-env": "~5.2.0",
    "eslint": "~5.15.0",
    "mocha": "~6.0.0",
    "nyc": "~13.3.0",
    ...
    "webpack": "~4.29.4",
    "webpack-cli": "~3.2.1"
  },
  "nyc": {
    "require": [
      "@babel/register"
    ],
    "reporter": [
      "lcov",
      "text"
    ],
    "sourceMap": false,
    "instrument": false
  }
}

My .babelrc file is

{
  "presets": [
    "@babel/preset-env"
  ],
  "env": {
    "test": {
      "plugins": ["istanbul"]
    }
  }
}

My test.spec.js file is

import chai from "chai";
let redux = require("../src/js/redux").redux;
let NumberReducer = require("../src/js/number-reducer").NumberReducer;

const expect = chai.expect;

describe("ReduxModule", function () {
    it('should expect an object', function () {
        const ReduxModule = redux(NumberReducer);
        expect(ReduxModule).to.be.a("object");
    });
    describe('ReduxModule#getState', function () {
        it('should give me zero', function () {
            const ReduxModule = redux(NumberReducer);
            expect(ReduxModule.getState()).to.equal(0);
        });
...
    });
});
Mani
  • 1,364
  • 14
  • 33

0 Answers0