我在从grunt运行我的mocha测试时不断收到此消息。
Warning: PhantomJS timed out, possibly due to a missing Mocha run() call. Use --force to continue.
测试在浏览器中运行良好,但是它们无法从grunt开始。我一直在使用this Grunt插件来运行我的浏览器测试,而这是我的Gruntfile.js的相关部分。
// I've checked if it does server while my tests are running & it does
connect: {
test: {
// public is where all my files are, of course
base: 'public',
port: 8080
}
},
mocha: {
client: {
urls: ['http://0.0.0.0:8080/test.html'],
log: true,
}
},
这里是test.html
文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="css/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="js/test.js"></script>
<script>mocha.run();</script>
</body>
</html>
这里是public
目录
/public
- index.html
- test.html
/css
- main.css
- mocha.css
/js
- main.js
- test.js \\ contains main.js + mocha.js + my tests
这里是grunt的输出,直到失败。
Running "uglify:dev" (uglify) task
File public/js/main.js created.
File public/js/test.js created.
Running "connect:test" (connect) task
Started connect web server on http://0.0.0.0:8080
Running "mocha:client" (mocha) task
Testing: http://0.0.0.0:8080/test.html
Warning: PhantomJS timed out, possibly due to a missing Mocha run() call. Use --force to continue.
Aborted due to warnings.
测试所需的所有src都放在一个文件中,它包含我的源代码(以及它的依赖项),mocha和测试。
答案 0 :(得分:4)
不知道它是否仍与您相关,但以防其他人遇到此问题:
在我的例子中,如果我从命令行直接调用它们,测试工作完全正常,例如:mocha-phantomjs .\test\src\tests.html
。只是grunt-mocha
无法运行它们,抛出此错误。
转移到grunt-mocha-phantomjs
为我修复它,不需要更改代码。 Gruntfile看起来像这样:
mocha_phantomjs: {
all : ["./test/**/*.html"]
}
(如果您已在jshint设置中将camelcase
设置为true
,则可能必须转义该属性名称。)
答案 1 :(得分:0)
mocha.run()
仅在浏览器中运行测试时有效。
要在浏览器和中执行测试,请执行以下操作:
将mocha.run()
替换为:
if (window.mochaPhantomJS) {
mochaPhantomJS.run();
}
else {
mocha.run();
}