У меня есть проект, в котором мой Gruntfile устанавливает Express-сервер. Теперь я хочу начать тестирование с помощью Mocha, но он продолжает возвращать ту же ошибку. Я действительно не знаю, как решить проблему.Тестирование с помощью Mocha с использованием Express и Grunt
Gruntfile.js
// Express Config
express: {
options: {
// Override defaults here
},
dev: {
options: {
script: 'app.js'
}
},
test: {
options: {
port: 3001,
script: 'test/testapp.js'
}
}
},
mocha: {
all: {
src: ['test/views/*.html'],
options: {
run: true
}
}
},
// Open Config
open: {
dev: {
path: 'http://localhost:3000'
},
test: {
path: 'http://localhost:3001'
}
},
//Test
grunt.registerTask('test', 'Run the tests.', [
'clean:server',
'jshint:test',
'express:test',
'open:test',
'mocha'
]);
Мой файл TestApp загружает экземпляр сервера Express. Это выглядит следующим образом:
тест/testapp.js:
var express = require('express');
var path = require('path');
var http = require('http');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('jade').renderFile);
app.use(express.static(path.join(__dirname, 'views')));
app.get('/', function (req, res) {
req.render('index.html');
})
// start up server
var PORT = 3001;
var server = http.createServer(app).listen(PORT, function() {
console.log('Express server listening on port ' + PORT);
});
Это HTML TestFile:
тест/просмотров/index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Mocha Spec Runner</title>
<link rel="stylesheet" href="node_modules/mocha/mocha.css">
</head>
<body>
<div id="mocha"></div>
<script src="node_modules/mocha/mocha.js"></script>
<script>mocha.setup('bdd')</script>
<script src="node_modules/chai/chai.js"></script>
<script>
var assert = chai.assert;
var expect = chai.expect;
var should = chai.should();
</script>
<!-- include source files here... -->
<!-- include spec files here... -->
<script src="../spec/test.js"></script>
<script>mocha.run()</script>
</body>
</html>
test/spec/test.js
'use strict';
describe('Give it some context', function() {
describe('maybe a bit more context here', function() {
it('should run here few assertions', function() {
});
});
});
Когда я бегу grunt test
это дает мне эту ошибку:
Running "clean:server" (clean) task
>> 0 paths cleaned.
Running "jshint:test" (jshint) task
>> 2 files lint free.
Running "express:test" (express) task
Starting background Express server
Express server listening on port 3001
Running "open:test" (open) task
Running "mocha:all" (mocha) task
Testing: test/views/index.html
Warning: PhantomJS timed out, possibly due to a missing Mocha run() call. Use --force to continue.
Aborted due to warnings.
Может кто-нибудь сказать мне, что я делаю неправильно здесь?
быстрое первое впечатление: звучит как mocha, не загружается, если описание не определено – frajk