Travis CI QUnit构建在jQuery上使用ReferenceError失败

时间:2018-01-03 14:51:46

标签: javascript jquery node.js travis-ci qunit

我的节点QUnit Travis CI构建(请参阅.travis.ymlfail miserably,但出现此错误:

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测试代码:

<!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>

我不明白为什么,因为它工作正常in the browser并且在本地节点内(在Windows和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

我怀疑CDN(code.jquery.comajax.googleapis.com)对此问题负责(我不知道travis构建环境是否可以访问互联网)但我发现了一些jQuery / QUnit适用的构建版本(similar setupusing CDN):https://travis-ci.org/fengyuanchen/cropper/builds/314789410

任何人都可以解释一下我构建的错误吗?

1 个答案:

答案 0 :(得分:0)

ajax.googleapis.com切换到code.jquery.com CDN解决了Travis CI构建问题。

我没有在Travis CI文档和问题跟踪器中找到任何关于此的官方信息,但似乎Travis构建环境有一些网络限制。从Travis工作人员那里得到一些引用会很好,例如允许或拒绝CDN的列表。