grunt,qunit,nodejs后端测试

时间:2014-01-31 20:42:43

标签: node.js unit-testing gruntjs qunit grunt-contrib-qunit

如何使用qunit& amp;测试nodejs后端代码咕噜。 在Gruntfile.js中如何只指定js文件,所以在qunit repo中,示例Gruntfile.js讲述了如何创建html文件,并且我可以看到可以使用grunt测试的html文件示例,但是如果我想要测试只有nodejs后端java脚本文件,然后我怎么用呢?有人可以为此指出一些Gruntfile的样本片段吗?

我的Gruntfile.js如下所示:

  module.exports = function( grunt ) {

  grunt.loadNpmTasks( "grunt-git-authors" );
  grunt.loadNpmTasks( "grunt-contrib-concat" );
  grunt.loadNpmTasks( "grunt-contrib-jshint" );
  grunt.loadNpmTasks( "grunt-contrib-qunit" );
  grunt.loadNpmTasks( "grunt-contrib-watch" );


  grunt.initConfig({
    pkg: grunt.file.readJSON( "package.json" ),
    qunit: {
      qunit: [
         "src/test.js"
      ]
    },
    watch: {
      files: [ "*", ".jshintrc", "{src,test}/**/{*,.*}" ],
      tasks: "default"
    }
});

 grunt.registerTask( "build", [ "qunit" ] );

};

我的test.js文件如下所示:

 test("testing", function(assert) {
     var val1 = 10;
     equal(10, val1, "We expect to be 10");
 });

但是在运行“grunt qunit”时,它会给出以下错误:

    Testing src/test.js 
    >> PhantomJS timed out, possibly due to a missing QUnit start() call.
    Warning: 1/1 assertions failed (0ms) Use --force to continue.

    Aborted due to warnings.

请告诉我在Gruntfile中提及的正确方法。

关于, -M -

1 个答案:

答案 0 :(得分:0)

你必须传递一个html文件而不是一个js文件,其中包含qunit客户端js文件。所以在这种情况下你可以拥有这个非常小的html文件:

<script src='qunit.js'></script>
<script src='test.js'></script>

(虽然人们会因为没有html,头部,身体标签和东西而对我不以为然。我假设你知道它们是如何工作的而且是你自己。这不是真正有效的HTML,但在这种情况下有效)

qunit来自http://qunitjs.com/http://code.jquery.com/qunit/qunit-1.14.0.js

在你的grunt文件中将其更改为"src/test.html",它会正常工作。

基本上gurnt-contrib-qunit尚不高级。你必须做更多的工作:)

您可以按照本教程获取更多信息:http://jordankasper.com/blog/2013/04/automated-javascript-tests-using-grunt-phantomjs-and-qunit/