2014-11-20 3 views
0

У меня есть проект, в котором мой 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. 

Может кто-нибудь сказать мне, что я делаю неправильно здесь?

+0

быстрое первое впечатление: звучит как mocha, не загружается, если описание не определено – frajk

ответ

1

ответа в severals части:

ЧАСТЬ 1

describe not defined 

был связан с конфигурацией Мисс хрюкать задачи экспресса: тест (Грунт-экспресс-сервер). Скрипт, определенный в Gruntfile.js, был test.js. При попытке достичь localhost: 3000 произошла ошибка. решаемые целевой сервер, как скрипт в gruntfile.js: тест/testapp.js

ЧАСТЬ 2

Warning: PhantomJS timed out, possibly due to a missing Mocha run() call. Use --force to continue. 

Ошибка при загрузке/Views/index.html тестовую страницу. Решено с помощью grunt-mocha-phantomjs вместо grunt-mocha

+0

Я установил 'grunt-mocha',' mocha' и 'chai' через НПМ. Все они находятся в папке node_modules. В моем Gruntfile я использую: 'require ('load-grunt-tasks') (grunt);' – JNevens

+0

, когда вы запускаете mocha -b path/to/test.js, что он вам говорит? – Aston

+0

Проходит тест – JNevens

Смежные вопросы