2013-06-07 3 views
5

Я пытаюсь создать шаблон узла и пытаюсь создать задачу для запуска теста Jasmine. У меня есть следующие конфигурации в моем Gruntfile.js:Жасмин, Grunt, RequireJS Срыв на тестовом выходе

jasmine: { 
    src : ['static/test/spec/**/*.js'], 
    options: { 
    host: 'http://localhost:<%= connect.test.port %>/', 
    // specs : 'static/test/spec/**/*.js', 
    template: require('grunt-template-jasmine-requirejs'), 
    templateOptions: { 
     requireConfigFile: 'static/test/SpecRunner.js', 
     requireConfig: { 
     baseUrl: './' 
     } 
    } 
    } 
}, 
connect: { 
    test: { 
    port: 8082 
    } 
} 
.... 
grunt.registerTask('jasmine-test', ['connect', 'jasmine']); 

Когда я запускаю задачу, я не получить какую-либо ошибки, но я не получаю дальше, чем это:

Running "connect:test" (connect) task 
Started connect web server on localhost:8000. 

Running "jasmine:src" (jasmine) task 
Testing jasmine specs via phantom 

_SpecRunner .html и когда я просматриваю файл в браузере, я не только не вижу никаких ошибок, но также вижу, что мой тест на жасмин работает нормально. Что мне не хватает, что заставляет задачу ворчать?

Приветствия,

Kianosh

ответ

1

Я был в состоянии получить ваш пример работает просто отлично, и что вы здесь работает нормально. Я сделал несколько изменений, но получил тот же результат. То, что вы используете, - это соединение, которое порождает локальный веб-сервер, а затем тесты запускаются в браузере. Итак, ваша задача не висит, она просто работает на сервере.

Но, по-вашему, вы, вероятно, хотите, чтобы ваши тесты запускались в терминале? Если это так, у меня есть довольно приличный для вас решение:

package.json

{ 

"name": "Jasmine Tests", 
    "description": "Jasmine Testing", 
    "version": "0.0.1", 
    "devDependencies": { 
    "grunt": "0.4.x", 
    "grunt-contrib-watch": "~0.2.0", 
    "grunt-contrib-jshint": "~0.4.3", 
    "grunt-contrib-jasmine": "~0.4.2", 
    "phantomjs": "1.8.2-0", 
    } 
} 

Gruntfile.js

module.exports = function(grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON("package.json"), 
    watch: { 
     grunt: { 
     files: ["Gruntfile.js", "package.json"], 
     tasks: "default" 
     }, 
     javascript: { 
     files: ["src/client/**/*.js", "specs/**/*Spec.js"], 
     tasks: "test" 
     } 
    }, 
    jasmine: { 
     src: "src/client/js/*.js", 
     options: { 
     specs: "specs/client/*Spec.js" 
     } 
    }, 
    jshint: { 
     all: [ 
     "Gruntfile.js", 
     "src/**/*.js", 
     "spec/**/*.js" 
     ], 
     options: { 
     jshintrc: ".jshintrc" 
     } 
    } 
    }); 
    grunt.loadNpmTasks("grunt-contrib-watch"); 
    grunt.loadNpmTasks("grunt-contrib-jshint"); 
    grunt.loadNpmTasks("grunt-contrib-jasmine"); 
    grunt.registerTask("test", ["jshint", "jasmine"]); 
    grunt.registerTask("default", ["test"]); 
}; 

Вы можете изменить файл stucture на то, что вам подходит , Установка обоих этих файлов выполните следующие команды:

npm install 

и

grunt test 

или

grunt watch 

Теперь я добавлю несколько вещей, как jshint, и смотреть ... смотреть является необязательным, но это действительно приятно иметь. jshint - это должно быть, по моему мнению, но не стесняйтесь вынимать его из решения.

Ключ действительно phantomjs, который позволяет запускать эти тесты в «фантомном» браузере, который выводится на терминал.

Вам также нужно будет настроить свои каталоги по своему вкусу.

Я разместил good blog post на этом (я также тестирую на стороне сервера).

EDIT: Вы делаете также нужен файл .jshintrc если вы решили идти по этому пути.

.jshintrc

{ 
    "curly" : true, 
    "eqeqeq" : true, 
    "immed" : true, 
    "latedef" : true, 
    "newcap" : true, 
    "noarg" : true, 
    "sub"  : true, 
    "undef" : true, 
    "boss" : true, 
    "eqnull" : true, 
    "node" : true, 
    "es5"  : true, 
    "globals" : { 
    "it"   : false, 
    "xit"  : false, 
    "describe" : false, 
    "xdescribe" : false, 
    "beforeEach" : false, 
    "afterEach" : false, 
    "expect"  : false, 
    "spyOn"  : false 
    } 
} 

Надеется, что это помогает.

+0

Спасибо! это сработало для меня. – Kianosh

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