Testing Mocha在浏览器中通过测试,在命令行中失败
我使用mocha grunt能够在命令行上运行/查看客户端测试。出于某种原因,当我在命令行上运行测试时,decrementColumn似乎被调用了两次 我想知道Beforeach是否存在某种类型的phantomJS窗口范围问题,因为如果我将该代码块(新级别实例化)复制到decrementColumn测试的顶部,那么浏览器和命令行都可以正常工作 作用 试验 }) Gruntile SPECRUNNERTesting Mocha在浏览器中通过测试,在命令行中失败,testing,gruntjs,phantomjs,mocha.js,chai,Testing,Gruntjs,Phantomjs,Mocha.js,Chai,我使用mocha grunt能够在命令行上运行/查看客户端测试。出于某种原因,当我在命令行上运行测试时,decrementColumn似乎被调用了两次 我想知道Beforeach是否存在某种类型的phantomJS窗口范围问题,因为如果我将该代码块(新级别实例化)复制到decrementColumn测试的顶部,那么浏览器和命令行都可以正常工作 作用 试验 }) Gruntile SPECRUNNER 摩卡咖啡测试 mocha.setup('bdd') expect=chai.expect mo
摩卡咖啡测试
mocha.setup('bdd')
expect=chai.expect
mocha.globals(['jQuery']);
mocha.run();
您是否遵循本指南 您的测试运行程序文件是什么样子的?你可能漏了一行
<script>
// Only tests run in real browser, injected script run if options.run == true
if (navigator.userAgent.indexOf('PhantomJS') < 0) {
mocha.run();
}
</script>
//只有测试在real browser中运行,如果options.run==true,则注入脚本将运行
if(navigator.userAgent.indexOf('PhantomJS')<0){
mocha.run();
}
使用测试运行程序文件更新了问题。是的,那是我遵循的指南,检查幻影是我遗漏的一行。漂亮的眼睛
describe( 'Level', function(){
beforeEach( function(){
level = new Level( [ 2, 3, 5 ] )
})
describe( '#decrementColumn()', function(){
it( 'should reduce column by one', function(){
level.decrementColumn( 1 )
expect ( level.columns[ 0 ] ).to.equal( 1 )
})
})
module.exports = function( grunt ){
grunt.initConfig({
pkg: grunt.file.readJSON( 'package.json' ),
mocha: {
all: {
src: [ 'test/runner.html' ],
},
options: {
reporter: 'Spec',
run: true
}
}
});
grunt.loadNpmTasks( 'grunt-mocha' )
grunt.registerTask( 'default', [ 'mocha' ] )
};
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="../lib/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<!-- mocha dependencies -->
<script type="text/javascript" src="../lib/jquery.min.js"></script>
<script type="text/javascript" src="../lib/expect.js"></script>
<script type="text/javascript" src="../lib/mocha.js"></script>
<script type="text/javascript" src="../lib/chai.js"></script>
<!-- application files -->
<script type="text/javascript" src='../client/view.js'></script>
<script type="text/javascript" src='../client/logic.js'></script>
<script type="text/javascript" src='../client/level.js'></script>
<script type="text/javascript" src='../client/game.js'></script>
<script type="text/javascript" src='../client/init.js'></script>
<!-- configure mocha && chai -->
<script>
mocha.setup( 'bdd' )
expect = chai.expect
</script>
<!-- test files -->
<script type="text/javascript" src='level-spec.js'></script>
<script>
mocha.globals(['jQuery']);
mocha.run();
</script>
</body>
</html>
<script>
// Only tests run in real browser, injected script run if options.run == true
if (navigator.userAgent.indexOf('PhantomJS') < 0) {
mocha.run();
}
</script>