Я был в состоянии получить ваш пример работает просто отлично, и что вы здесь работает нормально. Я сделал несколько изменений, но получил тот же результат. То, что вы используете, - это соединение, которое порождает локальный веб-сервер, а затем тесты запускаются в браузере. Итак, ваша задача не висит, она просто работает на сервере.
Но, по-вашему, вы, вероятно, хотите, чтобы ваши тесты запускались в терминале? Если это так, у меня есть довольно приличный для вас решение:
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
}
}
Надеется, что это помогает.
Спасибо! это сработало для меня. – Kianosh