QUnit和Sinon.js持续集成

问题描述:

我正在使用QUnit + Sinon.js,它在本地运行良好。 当我试图将它构建成持续集成过程时,问题就出现了。 我正在使用js-test-driver框架能够在持续集成环境中运行它。 在过去,我使用它没有Sinon.js,它没有任何问题。 但是在我加入了Sinon.js插件之后,它根本不起作用。 当我试图运行我的测试中,它说:QUnit和Sinon.js持续集成

D:/my/project/url/contentTest.js:60: TypeError: qTest is not a function 
Total 0 tests (Passed: 0 Fails: 0 Errors: 0)(0.00 ms) 

我的JS测试驱动程序配置:

server: http://localhost:9879 

load: 
    # QUnit related files 
    - qunit/lib/equiv.js 
    - qunit/lib/QUnitAdapter.js 
    - qunit/plugin/sinon-1.6.0.js 
    - qunit/plugin/sinon-qunit-1.0.0.js 

    # Dependencies 
    - external/jquery/1.7.2/jquery.min.js 

    # Files under test 
    - content.js 

    # Tests 
    - contentTest.js 

有趣的是,有一个QUnit index.html文件效果很好(当我打开这个网站,每次测试通过):

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>my tests</title> 
    <link rel="stylesheet" href="./qunit/lib/qunit-1.11.0.css"> 
</head> 
<body> 
    <div id="qunit"></div> 
    <div id="qunit-fixture"></div> 

    <!-- core --> 
    <script src="./qunit/lib/qunit-1.11.0.js"></script> 
    <script src="./qunit/plugin/sinon-1.6.0.js"></script> 
    <script src="./qunit/plugin/sinon-qunit-1.0.0.js"></script> 

    <!-- dependencies --> 
    <script src="./external/jquery/1.7.2/jquery.min.js"></script> 

    <!-- under test --> 
    <script src="./content.js"></script> 

    <!-- tests --> 
    <script src="./contentTest.js"></script> 
</body> 
</html> 

因此,似乎有与JS测试驱动器和Sinon.js冲突。如果我删除所有相关的Sinon.js测试和包含的sinon插件,那么它就可以工作。 如果我只是删除了与sinon相关的测试,它仍然失败。 如果我不删除sinon.js,但删除所有测试并创建一个“ok(true)”断言的emty测试,那么它仍会失败,并显示相同的错误消息(contentTest.js:60:TypeError:qTest is not一个函数),但是我的测试文件只包含10行(当我的文件只包含10行时,它如何可能是第60行的错误?)。

谢谢大家提前帮忙!

不是一个解决方案,但可能是一种获取更多信息的方法:您可以从shell本地运行js-test-driver脚本吗?它是否会产生类似的错误细节?至少,这会给你更多的信息和更短的反馈循环。