我正在从事一个使用 coffeescript 进行开发和测试的项目。我在打开 mocha 的 --watch 标志的 Node 中运行测试,这样我就可以在进行更改时自动运行测试。
虽然这在一定程度上起作用,但只有 ./test/test.*.coffee 文件在保存时会被重新编译。这是我的目录结构:
/src/coffee
-- # Dev files go here
/test/
-- # Test files go here
mocha watcher 响应/src 和/test 目录中的文件更改,但只要重新编译/test 目录中的文件,连续测试就会有点乏味。如果我退出并重新启动观察程序,源文件也会重新编译。我怎样才能让 mocha 让咖啡编译器在每次运行时在测试文件中列为依赖项的开发文件上运行?
最佳答案
这是我使用 grunt.js 的回答
您将必须安装 grunt 和一些额外的包。
npm install grunt grunt-contrib-coffee grunt-simple-mocha grunt-contrib-watch
然后编写这个 grunt.js 文件:
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-simple-mocha');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.initConfig({
coffee:{
dev:{
files:{
'src/*.js':'src/coffee/*.coffee',
}
},
test:{
files:{
'test/test.*.js':'test/test.*.coffee'
}
}
},
simplemocha:{
dev:{
src:"test/test.js",
options:{
reporter: 'spec',
slow: 200,
timeout: 1000
}
}
},
watch:{
all:{
files:['src/coffee/*', 'test/*.coffee'],
tasks:['buildDev', 'buildTest', 'test']
}
}
});
grunt.registerTask('test', 'simplemocha:dev');
grunt.registerTask('buildDev', 'coffee:dev');
grunt.registerTask('buildTest', 'coffee:test');
grunt.registerTask('watch', ['buildDev', 'buildTest', 'test', 'watch:all']);
};
注意:我没有关于您如何构建/运行测试的详细信息,因此您当然必须添加 ;)
然后运行 grunt watch 任务:
$>grunt watch
关于unit-testing - 如何制作 mocha watch,编译和测试依赖于保存的 coffeescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646589/