使用Grunt,Mocha,Require.js和PhantomJS进行测试

时间:2015-04-07 14:52:41

标签: javascript gruntjs requirejs phantomjs mocha

我尝试设置此配置,但我需要帮助。我试图使用:https://github.com/accordionpeas/grunt-mocha-require-phantom

我的结构:

build-dev/            <-- Generated by grunt
    vendor/
        js/
            jquery.js
            require.js
 js/
    model/
        cache.js         <-- File to be tested
    tests/
        cache.js        <-- Test for a file
        tests.js             <-- like test-bootstrap.js

我的gruntfile配置是:

mocha_require_phantom:
    devel:
        options:
            base: 'build-dev/js'
            main: 'tests'
            requireLib: '../vendor/js/require.js'
            files: ['tests/**/*.js']
            port: 3001

我的tests.js(test-bootstrap.js)是:

require.config({
    paths: {
        jquery: '../vendor/js/jquery',
        chai: '/node_modules/chai/chai'
    },
    baseUrl: '/'
});

mocha.setup({
    ui: 'bdd'
});

require([testPathname], function() {
    if (window.mochaPhantomJS) {
     return mochaPhantomJS.run();
    } else {
        return mocha.run();
    }
});

我的tests / cache.js是:

define(['chai', 'model/cache'], function(chai, cache) {
    var should;
    should = chai.should();
    return describe('test suite 1', function() {
        return it('should work', function() {
            return cache.test().should.be.equal(5);
        });
    });
});

问题是它无法正常工作。它无法加载模型/缓存。我试图在tests.js中更改baseUrl(比如test-bootstrap.js)。我也试图在grunt中改变baseUrl。我试图添加路径:model: ../../js/model,但它被忽略了。

我需要调用模型model/cache,我该如何设置它以使其工作?我应该使用另一个插件 - 哪一个?

编辑:修正错别字。

0 个答案:

没有答案