gpt4 book ai didi

requirejs - Jasmine、Grunt、RequireJS 在测试输出上停滞

转载 作者:行者123 更新时间:2023-12-04 21:44:27 28 4
gpt4 key购买 nike

我正在尝试创建一个节点样板,并尝试创建一个任务来运行 Jasmine 测试。我的 Gruntfile.js 中有以下配置:

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 文件已创建,当我在浏览器中查看该文件时,我不仅没有看到任何错误,而且还看到我的 jasmine 测试运行正常。我错过了什么让 grunt 任务挂起?

干杯,

基亚诺什

最佳答案

我能够让你的例子工作得很好,你在这里的工作正常。我确实做了一些修改,但我得到了相同的结果。您使用的是连接,它生成本地网络服务器,然后在浏览器中运行测试。所以,你的任务并没有挂起,它只是在运行服务器。

但从听起来如何,您可能希望您的测试在终端中运行?如果是这样,我为您提供了一个相当不错的解决方案:

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"]);
};

您可以将文件结构更改为适合您的任何结构。安装这两个文件运行以下命令:
npm install


grunt test

或者
grunt watch

现在我确实添加了一些东西,比如 jshint 和 watch... watch 是可选的,但它真的很好。 jshint 在我看来是必不可少的,但请随时将其从解决方案中删除。

关键真的是 phantomjs ,它使您能够在“幻像”浏览器中运行这些测试,该浏览器将输出到终端。

您还需要根据自己的喜好自定义目录。

我发了一个 good blog post对此(我也进行服务器端测试)。

编辑:如果您选择走那条路,您还需要一个 .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
}
}

希望这可以帮助。

关于requirejs - Jasmine、Grunt、RequireJS 在测试输出上停滞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975638/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com