No test output from mocha-phantomjs

592 views Asked by At

I'm having trouble getting the simplest mocha-phantomjs test to work on Windows, from the command-line. It seems to run the javascript - as I can see some output from console.log, but I'm not seeing any test output.

I did npm install on the following packages

  • mocha-phantomjs (4.0.2)
  • phantomjs (2.1.3)
  • mocha (2.4.4)
  • chai (3.5.0)

test\cow-test.js:

console.log("fred1");

describe("OnePlusFour", function() {
  it("should be able to add two numbers", function() {
    chai = require('chai');
    var expect = chai.expect;

    var first = 1;
    var second = 4;
    expect(first + second).to.equal(5);
  });
});

console.log("fred2");

cow.html:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Cow tests</title>
  <link rel="stylesheet" media="all" href="./node_modules/mocha/mocha.css">
</head>
<body>
  <div id="mocha"></div>

  <script src="./node_modules/mocha/mocha.js"></script>
  <script src="./node_modules/chai/chai.js"></script>

  <script>
    mocha.setup('bdd');
  </script>

  <script src="test/cow-test.js"></script>

  <script>
      mocha.run();
  </script>
</body>
</html>

When I run mocha on the javascript file, I get the correct test output:

D:\Sandbox\GummyBear>mocha test\cow-test.js
fred1
fred2


  OnePlusFour
    √ should be able to add two numbers


  1 passing (10ms)

Yay! But when I run mocha-phantomjs on the HTML file, I only get console output and nothing from the test:

D:\Sandbox\GummyBear>mocha-phantomjs cow.html
fred1
fred2

^CTerminate batch job (Y/N)? y

and I have to use Ctrl+Break to terminate it, or it will stay there forever. Boo.

What am I doing wrong?

BTW eventually I want to get this working with gulp. I used the MVC Boilerplate templates to create a project structure with ASP.NET Core, bower and gulp etc, but I got stuck at the javascript unit test stage (gulp-mocha-phantomjs gave the error "mocha was not found in the page within 10000ms of the page loading."). So in order to solve that, I wanted to get my head around the basics of JS unit testing first.

0

There are 0 answers