byłem w stanie uzyskać przykład działa dobrze, a co masz tutaj działa ok. Wprowadziłem kilka modyfikacji, ale otrzymałem taki sam wynik. Tym, czego używasz, jest connect, który uruchamia lokalny serwer internetowy, a następnie testy są uruchamiane w przeglądarce. Twoje zadanie nie zwisa, to tylko uruchamia serwer.
Ale jak brzmi, prawdopodobnie chcesz uruchomić testy w terminalu? Jeśli tak, to mam dość przyzwoite rozwiązanie dla Ciebie:
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"]);
};
Można zmienić stucture pliku na cokolwiek ci pasuje . Konfiguracja obu tych plików należy uruchomić następujące polecenia:
npm install
i
grunt test
lub
grunt watch
Teraz było dodać kilka rzeczy, jak jshint i oglądać ... zegarek jest opcjonalne, ale naprawdę miło jest je mieć. jshint jest koniecznością w moim opini, ale nie krępuj się, aby go usunąć z rozwiązania.
Kluczem naprawdę jest phantomjs, który umożliwia uruchomienie tych testów w "fantomowej" przeglądarce, która wysyła dane do terminala.
Będziesz także potrzebował dostosować swoje katalogi do swoich upodobań.
W tym celu opublikowałem good blog post (testuję również po stronie serwera).
EDIT: dokonać również potrzebny plik .jshintrc jeśli zdecydują się pójść tą drogą.
.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
}
}
Nadzieja to pomaga.
Dzięki! to zadziałało dla mnie. – Kianosh