我有点不了解如何编写复杂的Gruntfile.js
并将其用于测试。我是否以正确的方式使用Grunt?我想请社区寻求帮助,并以其他方式做出贡献。
我正在为Grunt写一个新任务,并希望在Github和npm上为广大观众推出它。我想为这项任务进行自动化测试(我想学习如何正确地完成它!)。
我想测试不同的选项组合(现在大约15个)。所以,我应该多次:
要查看一些非工作代码以便更好地理解:
Gruntfile:
grunt.initConfig({
test_my_task: {
testBasic: {
options: {
//first set
}
},
testIgnore: {
options: {
//another set
}
},
//...
}
clean: {
tests: ['tmp'] // mmm... clean test directory
},
// mmm... unit tests.
nodeunit: {
tests: ['test/*.js'] //tests code is in 'tests/' dir
}
});
grunt.registerTask('test', ['test_my_task']);
我知道在给出tmp/
对象时如何检查options
文件夹是否处于所需状态。
问题在于把事情放在一起。
我会问模板代码作为答案,npo需要放置工作示例。
PS:你可以提出另一个测试工具,nodeunit不是必须的。
PPS:废话,我现在可以用普通的javascript写这个!也许我错了,我想把Grunt放进单元测试中?但我想测试我的任务在真实环境中如何工作,并且从Grunt传递了不同的选项......
答案 0 :(得分:9)
您可能希望查看grunt-lintspaces配置。测试look like this,这似乎是一个很好的方法。 grunt-lintspaces使用nodeunit,但现在似乎有很多插件。
如果你不想测试实际的grunt输出而不是功能,你可以使用我用于https://github.com/pghalliday/grunt-mocha-test的grunt-mocha-test - the grunt-available-tasks tests。我更喜欢描述个人测试风格,它读得很好;使用它的好处是你实际测试你的插件做什么,而不包括你的Gruntfile中的大量配置;即测试代码应该在测试中。
Grunt已经过充分测试,因此测试其配置是否有效是没有意义的。只需测试您自己的插件的功能。