4

如何使用 qunit & grunt 测试 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-

4

1 回答 1

0

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

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

(尽管人们会因为我没有 html、head、body 标签和东西而对我皱眉头。我假设你知道它们是如何工作的,而且你自己也知道。这不是真正有效的 html,但在这种情况下有效)

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

并在您的 gruntfile 中将其更改为"src/test.html",它将正常工作。

基本上gurnt-contrib-qunit还没有那么先进。你得做更多的工作:)

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

于 2014-04-04T16:49:23.320 回答