首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QUnit + PhantomJS: asyncTest从不返回

QUnit + PhantomJS: asyncTest从不返回
EN

Stack Overflow用户
提问于 2013-04-04 00:01:56
回答 1查看 789关注 0票数 5

在尝试设置PhantomJS时,我遇到了一个问题,因此我可以通过Travis CI在我的JavaScript项目上进行持续集成。

基本上,即使是最简单的asyncTest也不会返回。在node或Chrome等浏览器上测试时,它工作得很好。

我的asyncTest看起来像这样:

代码语言:javascript
复制
asyncTest ("async test", function() {
    expect(1);
    console.log("Beginning test...");
    setTimeout(function() {
        ok(true, "true is true");
        start();
        console.log("Test should now end...");
    }, 200);
});

我已经用最少的代码建立了一个存储库来重现这个问题:

https://github.com/siovene/phantomjs-async-test

如果有任何帮助,我将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-26 06:40:25

塞尔瓦托

嘿。我发现问题出在qunit-logging.js中。当我从你的index.html中删除它时,测试运行得很好。

下面是我在phantomjs中运行qunit的过程。

  • 我注释掉了qunit-logging.js引用。我从qunit树中下载了

插件:https://github.com/jquery/qunit/tree/master/addons/phantomjs

  • I将其放在与您的主文件相同的目录中(在我的示例中,它是c:\temp\qunit_test).
  • I,然后从我的命令行运行以下命令:

C:\temp\qunit_test>c:\phantom\phantomjs.exe runner.js file:///c:/temp/qunit_test/index.html

代码语言:javascript
复制
Results:
Beginning test...
Test should now end...
Took 2045ms to run 1 tests. 1 passed, 0 failed.

此外,我还更新了qunit源代码,以便从cdn运行。我不知道你使用的是什么版本(我只能说是2012 ),我想用最新的版本来解决问题。下面是我的index.html文件:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Test Suite</title>

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

    </head>
    <body>
        <div id="qunit"></div>
        <div id="qunit-fixture"></div>

            <!-- qunit -->
        <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.12.0.css" type="text/css" media="screen" />
        <script src="http://code.jquery.com/qunit/qunit-1.12.0.js"></script>
        <!--<script src="qunit-logging.js"></script>-->

        <script type='text/javascript'>
            module("lib-test");

            asyncTest ("async test", function() {
                expect(1);
                console.log("Beginning test...");
                setTimeout(function() {        
                    start();
                    ok(true, "true is true");
                    console.log("Test should now end...");
                }, 2000);
            });     

        </script>

    </body>
</html>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15792315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档