jasmine-maven-plugin加载一些其他测试实用程序的常用脚本

时间:2014-07-09 13:05:19

标签: javascript jasmine phantomjs jasmine-maven-plugin

我有多个测试需要共享相同的常用实用程序脚本。我不想将此文件放在源文件夹结构中,因为它只与测试有关。

所以我的源文件夹是:

<jsSrcDir>${project.basedir}/src/main/js</jsSrcDir>

和我的测试来源:

<jsTestSrcDir>src/test/js</jsTestSrcDir>

在src / test / js中我有一个testUtil.js文件,我需要在其他jasmine测试中加载。是否可以从茉莉花测试中访问这些文件?

describe('Load Util Module', function() {
    it('check util is loaded', function() {
        //load testUtil.js
    });
});

2 个答案:

答案 0 :(得分:0)

这就是我设法做到的方式:

  1. 我将require.js添加到我的规格文件夹

    src/test/js/require.js
    
  2. 在jasmine-maven-plugin配置中,我添加了REQUIRE_JS规范运行器模板:

    <specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
    
  3. 数据文件位于:

    src/test/js/testUtil.js
    

    具有以下内容:

    define([], function() {
        return {
            "data" : [1, 2, 3]
        };
    });
    
  4. 要注入此数据对象的测试需要一个define指令:

    define(['../../../spec/testUtil'], function(testUtil) {
        var _testUtil = testUtil;
        describe('Testing data loaded', function () {
            it('loads test data', function () {            
                 expect(testUtil.data.length).toBe(3);
             });
        });
    });
    

答案 1 :(得分:0)

如果你还没有将require.js用于你的项目,那么你的解决方案就是矫枉过正。

如果要确保在规范之前加载库,则只需使用preloadSources配置参数。

<preloadSources>
  <source>src/test/js/testUtil.js</source>
<preloadSources>
相关问题