My node QUnit Travis CI build (see .travis.yml) fail miserably with this error :
Running "qunit:files" (qunit) task
Testing test/unit/iframeTracker-jQuery1.html FF
global failure
Message: ReferenceError: Can't find variable: jQuery
file:///home/travis/build/vincepare/iframeTracker-jquery/src/jquery.iframetracker.js:184
QUnit test code :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.3.3.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture">
<!-- ... (some iframe) -->
</div>
<script src="https://code.jquery.com/qunit/qunit-2.3.3.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="../../src/jquery.iframetracker.js"></script>
<script src="iframeTracker_test.js"></script>
</body>
</html>
I don't understand why, because it works fine in the browser and within node locally (tested on Windows and Linux/Docker) :
docker run -ti --rm -v "$(pwd):/app" -w /app node:9 npm install
docker run -ti --rm -v "$(pwd):/app" -w /app node:9 npm test
I suspected CDNs (code.jquery.com
and ajax.googleapis.com
) to be responsible for this issue (I don't know if travis build environments have access to the internet) but I found some jQuery/QUnit builds (with similar setup and using CDN) that works : https://travis-ci.org/fengyuanchen/cropper/builds/314789410
Can anyone explain me what's wrong with my build ?
Switching from ajax.googleapis.com
to code.jquery.com
CDN solved the Travis CI build.
I didn't found any official information about this in Travis CI documentation and issue tracker, but it seems that Travis build environments has some network restriction. It would be nice to have some quote on that from Travis staff, for example a list of allowed or denied CDNs.