我几乎没有修改ember生成器生成的代码
yo ember
并稍微更改test / spec / test.js
'use strict';
(function () {
describe('Give it some context', function () {
describe('maybe a bit more context here', function () {
it('should equal to the title', function () {
var title = document.title;
title.should.equal('Ember Starter Kit');
console.log(title) //doesn't output anything in the terminal
});
it('should equal to a number', function () {
1.should.equal(1);
});
});
});
})();
有两个奇怪的事情:
显示0测试:
运行“mocha:all”(mocha)任务 测试:http:// 。。*。* / index.html
0测试完成(1毫秒)
完成,没有错误。
答案 0 :(得分:2)
我注意到当你得到“0测试完成”时,测试文件中就会出错。
您的测试有两个问题:
expect(1).to.equal(1);
另外,请确保在Chai包含后index.html
中包含以下几行(以便should
有效):
...
<!-- assertion framework -->
<script src="lib/chai.js"></script>
<script>var expect = chai.expect</script>
<script>var should = chai.should()</script>
...
这会导致您的测试运行。但是,我没有控制台日志记录问题的答案。我自己在寻找答案。似乎是grunt-mocha和PhantomJS的东西。
编辑:结果显示,禁用了登录grunt-mocha的控制台:grunt-mocha source。
如果您进入项目目录中的node_modules/grunt-mocha/tasks/mocha.js
,则可以取消注释第101行,并且日志记录将适用于您的项目。
完整更新的测试文件:
/*global describe, it, document, expect */
'use strict';
(function () {
describe('Give it some context', function () {
describe('maybe a bit more context here', function () {
it('should equal to the title', function () {
var title = document.title;
title.should.equal('Ember Starter Kit');
console.log(title); //doesn't output anything in the terminal
});
it('should equal to a number', function () {
expect(1).to.equal(1);
});
});
});
})();
编辑:来自grunt-mocha的开发者:
是的,取消注释该行以在命令行中获取控制台输出...虽然通常您不希望在运行自动化测试时这样做,因此默认情况下禁用它。如果你想真正调试,我建议在浏览器中打开规范并使用浏览器控制台/调试器。奖励是您可以单击套件/测试,以便它只运行您感兴趣的测试。