1

我无法从命令行让最简单的 mocha-phantomjs 测试在 Windows 上运行。它似乎在运行 javascript - 因为我可以看到一些输出console.log,但我没有看到任何测试输出。

我做npm install了以下包

  • 摩卡幻影 (4.0.2)
  • 幻影(2.1.3)
  • 摩卡(2.4.4)
  • 柴 (3.5.0)

测试\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");

牛.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>

当我在 javascript 文件上运行 mocha 时,我得到了正确的测试输出:

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


  OnePlusFour
    √ should be able to add two numbers


  1 passing (10ms)

耶!但是当我在 HTML 文件上运行 mocha-phantomjs 时,我只得到控制台输出,而没有从测试中得到:

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

^CTerminate batch job (Y/N)? y

我必须使用 Ctrl+Break 来终止它,否则它将永远留在那里。嘘。

我究竟做错了什么?

顺便说一句,最终我想用 gulp 来解决这个问题。我使用 MVC Boilerplate 模板创建了一个带有 ASP.NET Core、bower 和 gulp 等的项目结构,但我卡在了 javascript 单元测试阶段(gulp-mocha-phantomjs 给出了错误“mocha is not found in the page inside 10000 毫秒的页面加载时间。”)。所以为了解决这个问题,我想首先了解 JS 单元测试的基础知识。

4

0 回答 0