Loading CommonJS modules with "load"

109 views
Skip to first unread message

juic...@gmail.com

unread,
Jul 6, 2016, 9:36:26 AM7/6/16
to Galen Framework
Hi There

I just started using Galen. The Simple Tests were no problem, everything worked as it should.
Now i started wrapping dynamic content around my test suites and i want to load a CommonJS Module with "load" to pass project-specific parameters to my tests.
I do this to be able to run the same tests on multiple projects just by using different project configurations.

I Use Galen (v2.2.5) With Gulp(CLI v 3.91) using the Galen Javascript Test Syntax.

the application.conf.js(file i want to load) file includes project specific configurations:
'use strict';

var applicationConf = {
host: 'somUlr.com.dev',path:'somepath',testCo: 36
modules: {
app: true,
core: true,banner:{...},
...
},
assets: {
jsRoot: './static/js/src',
...
}
};

module.exports = applicationConf;



im trying to load it from my test:
'use strict';

// declare config to use
load('../../../application.conf.js');

// declare idref for content config
var idref = '?sp=1&idref=competition&id=' + applicationConf.testCo;

// get used bannertypes from config File
var bannerTypes = applicationConf.modules.banner;

// declare banner alignments
var formats = {
rectangle: {
deviceName: 'Rectangle',
size: '300x250',
tags: 'rectangle'
},
vertical: {
deviceName: 'Vertical',
size: '160x600',
tags: 'vertical'
},
horizontal: {
deviceName: 'Horizontal',
size: '768x90',
tags: 'horizontal'
}
};

forAll(bannerTypes, function(bannerType){
if(bannerType === true){
forAll(formats, function(format){
test('Test: ' + bannerType + ' on ' + format, function(done) {
var url = function(){
var u = 'http://' + applicationConf.host + '/';
u += applicationConf.path ? applicationConf.path : '';
u += 'affiliateIdGalenTest/responsive/';
u += bannerType + '/';
u += idref;
};

var driver = createDriver(url(), format.size);

checkLayout(driver, "test/galen/specs/hotw.positions.gspec", format.tags);
});
});
}
});



Getting This Error Message:
[15:22:28] Requiring external module babel-register
[15:22:29] Using gulpfile ~/www/public_html/comon/prj/ad/admon/gulpfile.babel.js
[15:22:29] Starting 'test:galen'...
[15:22:29] info: starting galen
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Could not load script: ../../../application.conf.js
at com.galenframework.GalenMain.execute(GalenMain.java:60)
at com.galenframework.GalenMain.main(GalenMain.java:78)
Caused by: java.lang.RuntimeException: Could not load script: ../../../application.conf.js
at com.galenframework.javascript.JsFunctionLoad.load(JsFunctionLoad.java:76)
at com.galenframework.javascript.JsFunctionLoad.call(JsFunctionLoad.java:65)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites_Positioning_test_js_20._c_script_0(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/Positioning.test.js:4)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites_Positioning_test_js_20.call(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/Positioning.test.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3090)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites_Positioning_test_js_20.call(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/Positioning.test.js)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites_Positioning_test_js_20.exec(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/Positioning.test.js)
at org.mozilla.javascript.Context.evaluateReader(Context.java:1110)
at com.galenframework.javascript.GalenJsExecutor.eval(GalenJsExecutor.java:99)
at com.galenframework.runner.JsTestCollector.execute(JsTestCollector.java:63)
at com.galenframework.actions.GalenActionTest.runTestFiles(GalenActionTest.java:101)
at com.galenframework.actions.GalenActionTest.execute(GalenActionTest.java:85)
at com.galenframework.GalenMain.execute(GalenMain.java:58)
... 1 more
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "module" is not defined. (/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/../../../application.conf.js#100)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3689)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3667)
at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3752)
at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1727)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites__________application_conf_js_21._c_script_0(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/../../../application.conf.js:100)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites__________application_conf_js_21.call(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/../../../application.conf.js)
at org.mozilla.javascript.gen._Users_huess_www_public_html_comon_prj_ad_admon_test_galen_suites__________application_conf_js_21.exec(/Users/huess/www/public_html/comon/prj/ad/admon/test/galen/suites/../../../application.conf.js)
at org.mozilla.javascript.Context.evaluateReader(Context.java:1110)
at com.galenframework.javascript.JsFunctionLoad.loadScript(JsFunctionLoad.java:119)
at com.galenframework.javascript.JsFunctionLoad.load(JsFunctionLoad.java:74)
... 15 more
[15:22:30] info: galen suite closed
[15:22:30] error: Galen reported failed tests: Positioning.test.js
[15:22:30] 'test:galen' errored after 658 ms
[15:22:30] Error: Galen reported failed tests: Positioning.test.js
    at formatError (/usr/local/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:195:15)
    at emitOne (events.js:90:13)
    at Gulp.emit (events.js:182:7)
    at Gulp.Orchestrator._emitTaskDone (/Users/huess/www/public_html/comon/prj/ad/admon/node_modules/orchestrator/index.js:264:8)
    at /Users/huess/www/public_html/comon/prj/ad/admon/node_modules/orchestrator/index.js:275:23
    at finish (/Users/huess/www/public_html/comon/prj/ad/admon/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/Users/huess/www/public_html/comon/prj/ad/admon/node_modules/orchestrator/lib/runTask.js:29:3)
    at galen.js:70:6
    at /Users/huess/www/public_html/comon/prj/ad/admon/node_modules/async/lib/async.js:414:13


I tried "requiring" rather than "loading" but galen doesn't seem to know the require statement.. 
Im sure Load should do the thing but i could not find this specific use case..  
Can you give me any advice on how to do this or tell me what im doing wrong?

Great work by the way, I really like Galen's easy implementation and usage and would love to integrate it into my builds

greets,
hüss



Martin Reinhardt

unread,
Jul 6, 2016, 11:40:13 PM7/6/16
to Galen Framework
try something like that


/*
Exporting functions to all other tests that will use this script
*/
(function (export) {
export.applicationConf = applicationConf;
})(this);
Reply all
Reply to author
Forward
0 new messages