qunit / browser工作正常,但qunit / grunt因require.js而失败

时间:2014-09-14 23:41:03

标签: javascript testing requirejs gruntjs qunit

我有一个小github project有两个分支:master(稳定)和qunit-require(不稳定)。我已经在qunit中编写了一些测试,我希望在浏览器和grunt级别都可以运行。在master分支上一切正常,travis-CI通过。在qunit-require分支上,我试图为测试添加require.js,但我还没有成功。

我可以通过显示test/index.html从浏览器运行测试。但是当我在控制台中运行grunt时,我没有得到断言错误,而且我不知道为什么:

tducin@tducin-workshop:~/Development/tree (qunit-require)$ grunt
Running "qunit:all" (qunit) task
Testing test/index.html Warning: 0/0 assertions ran (15ms) Use --force to continue.

Aborted due to warnings.

我有src/test/个目录,只要存储了bower deps的bower_components/。这是我的test/index.html

<!DOCTYPE html>
<html>
    <head>
        <title>jsTreeStructure Test Runner</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="../bower_components/qunit/qunit/qunit.css" />
        <script src="../bower_components/qunit/qunit/qunit.js"></script>
    </head>
    <body>
        <div id="qunit"></div>
        <div id="qunit-fixture"></div>
        <script src="../bower_components/requirejs/require.js" data-main="init.js"></script>
    </body>
</html>

这是我的test/init.js

require.config({
    baseUrl: '../',
    shim: {
        'underscore': {
            exports: '_'
        },
        'tree' : {
            exports: 'Tree'
        },
        'qunit' : {
            exports: 'QUnit'
        }
    },
    paths: {
        'underscore': 'bower_components/underscore/underscore',
        'qunit': 'bower_components/qunit/qunit/qunit',
        'tree': 'src/tree'
    }
});

require([
    'test/suites/basic', 'test/qunit-extend'
], function(BasicTests) {
    QUnit.config.autoload = false;
    QUnit.config.autostart = false;
    BasicTests.run();
    QUnit.load();
    QUnit.start();
});

这是我Gruntfile.js的一部分:

/*global module:false*/
module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    qunit: {
      all: ['test/index.html'],
      options: {
        timeout: 3000,
        coverage: {
          src: ['src/tree.js']
        }
      }
    },
  // [...]
  });

  // These plugins provide necessary tasks.
  grunt.loadNpmTasks('grunt-contrib-qunit');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task.
  grunt.registerTask('test', ['qunit', 'jshint']);
  grunt.registerTask('build', ['uglify']);
  grunt.registerTask('default', ['test', 'build']);
};

无论如何,您可以在github上找到整个内容:https://github.com/tkoomzaaskz/tree/tree/qunit-require

我的问题是:我可以做些什么让grunt执行断言(即我在这里犯了什么错误)?

0 个答案:

没有答案