我无法从命令行让最简单的 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 单元测试的基础知识。