2013-06-07 8 views
5

Próbuję utworzyć węzeł podstawowy i próbuję utworzyć zadanie, aby uruchomić test Jasmine. Mam następującą konfigurację w moich Gruntfile.js:Jasmine, Grunt, RequJJS Utrapienie na wyjściu testowym

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']); 

Kiedy uruchomić zadanie, nie otrzymuję żadnych błędów, jednak nie dostanę się dalej niż to:

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

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

_SpecRunner Plik .html jest tworzony i kiedy przeglądam plik w przeglądarce, nie tylko nie widzę żadnych błędów, ale widzę też, że mój test jaśminowy działał poprawnie. Czego mi brakuje, co sprawia, że ​​zadanie pomrukuje?

Cheers,

Kianosh

Odpowiedz

1

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.

+0

Dzięki! to zadziałało dla mnie. – Kianosh