tôi đã có thể để có được ví dụ của bạn chỉ làm việc tốt, và những gì bạn có ở đây hoạt động ok. Tôi đã thực hiện một vài sửa đổi nhưng tôi nhận được kết quả tương tự. Những gì bạn đang sử dụng là kết nối, đó là sinh ra một máy chủ web địa phương, sau đó các thử nghiệm chạy trong trình duyệt. Vì vậy, nhiệm vụ của bạn không treo, nó chỉ chạy sever.
Nhưng từ những gì nó có vẻ như, bạn có thể muốn thử nghiệm của bạn để chạy trong thiết bị đầu cuối? Nếu vậy, tôi có một giải pháp khá tốt cho bạn:
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"]);
};
Bạn có thể thay đổi các tập tin stucture để bất cứ điều gì phù hợp với bạn . Thiết lập cả hai file chạy các lệnh sau:
npm install
và
grunt test
hoặc
grunt watch
Bây giờ tôi đã thêm một vài điều, như jshint, và xem ... đồng hồ là tùy chọn, nhưng nó thực sự tốt đẹp để có. jshint là phải có trong ý kiến của tôi, nhưng cảm thấy tự do để lấy nó ra khỏi giải pháp.
Khóa thực sự là phantomjs, cho phép bạn chạy các thử nghiệm này trong trình duyệt "ma", kết quả đầu ra cho thiết bị đầu cuối.
Bạn cũng sẽ cần tùy chỉnh các thư mục theo sở thích của mình.
Tôi đã đăng một good blog post về điều này (tôi cũng đi kiểm tra phía máy chủ).
EDIT: Bạn cũng cần một tệp .jshintrc nếu bạn chọn sử dụng tuyến đường đó.
.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
}
}
Hope this helps.
Cảm ơn !! đã làm việc cho tôi. – Kianosh