我如何使用 qunit 和 grunt 测试 nodejs 后端代码。
在 Gruntfile.js 中如何仅指定 js 文件,因此在 qunit 存储库中,示例 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-

最佳答案

您必须传递 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/

关于node.js - grunt、qunit、nodejs 后端测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21489692/

10-12 23:55