首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >called qunit测试被调用两次

called qunit测试被调用两次
EN

Stack Overflow用户
提问于 2017-01-13 06:38:46
回答 1查看 407关注 0票数 0

我最近将我的"ember-cli“升级到了"2.10.0”,将"ember-cli-qunit“升级到了"3.0.1”,但每个测试模块都运行了两次。但是,当我在jsbin中尝试代码时,我无法重新创建该问题。我的测试如下所示:

代码语言:javascript
复制
import Qunit from 'qunit';
Qunit.module("[Reporting]", function (hooks) {

    hooks.before(function () {
        console.log("before");            
    });

    hooks.after(function () {
        console.log("after");            
    });

    Qunit.test("test 1", function (assert) {
        console.log("test 1");  
        assert.equal(1,1);
    });

    Qunit.test("test 2", function (assert) {
        console.log("test 2"); 
        assert.equal(1,1);
    });
}

我可以看到我的quint版本是2.1.1,而jquery版本是1.11.3。

我的Index.html文件看起来像这样;

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Studio Tests</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    {{content-for 'head'}}
    {{content-for 'test-head'}}

    <link rel="stylesheet" href="assets/vendor.css">
    <link rel="stylesheet" href="assets/studio-blessed1.css">
    <link rel="stylesheet" href="assets/studio.css">
    <link rel="stylesheet" href="assets/test-support.css">
    <style>#blanket-main { position: relative; z-index: 99999; }</style>

    {{content-for 'head-footer'}}
    {{content-for 'test-head-footer'}}
  </head>
  <body>

    {{content-for 'body'}}
    {{content-for 'test-body'}}
    <script src="assets/vendor.js"></script>
    <script src="assets/test-support.js"></script>
    <script src="assets/studio.js"></script>
    <script src="assets/blanket-options.js"></script>
    <script src="assets/blanket-loader.js"></script>
    <script src="testem.js"></script>
    <script src="assets/tests.js"></script>

    {{content-for 'body-footer'}}
    {{content-for 'test-body-footer'}}
  </body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2017-01-17 23:15:48

我在测试中发现了问题所在。我正在尝试配置一组测试,这些测试将基于我在运行测试时发送的查询参数加载。我试图这样做的方式基本上是错误的。

在我的test-helper.js中,我添加了:

代码语言:javascript
复制
import Resolver from 'studio/resolver';
import {setResolver} from 'ember-qunit';
import TestLoader from 'ember-cli-test-loader/test-support';

setResolver(Resolver.create());

//ADDED THIS PROTOTYPE AS PER MENTIONED IN https://github.com/ember-cli/ember-cli-test-loader
TestLoader.prototype.shouldLoadModule = function(moduleName) {
    //return (moduleName.match(/[-_]test$/));
    var additionalCondition = true;
    var dirName = QUnit.urlParams.directory;
    if (dirName) {
        additionalCondition = moduleName.indexOf(dirName + '/') === 0 && (moduleName.indexOf('/', dirName.length + 1) === -1);
    }
    return additionalCondition;
};

TestLoader.load();

但我不得不这样做:

代码语言:javascript
复制
import Ember from 'ember';
import resolver from './helpers/resolver';
import {
    setResolver
} from 'ember-qunit';
import TestLoader from 'ember-cli-test-loader/test-support';

Ember.$(document).ready(function () {
    TestLoader.prototype.shouldLoadModule = function (moduleName) {
        //return (moduleName.match(/[-_]test$/));
        var additionalCondition = true;
        var dirName = QUnit.urlParams.directory;
        if (dirName) {
            additionalCondition = moduleName.indexOf(dirName + '/') === 0 && (moduleName.indexOf('/', dirName.length + 1) === -1);
        }
        return additionalCondition;
    };
});

setResolver(resolver);

但现在我在调用andThen帮助器方法时收到以下错误:

代码语言:javascript
复制
Assertion after the final `assert.async` was resolved

所以:

代码语言:javascript
复制
//THIS FAILS(BUT USED TO WORK BEFORE QUINT UPGRADE)
test("DUMMY TEST 2", function (assert) {
    clickSomeElement();
    andThen(()=> {
        assert.equal(1, 1);
    });
});

我使用的是ember "1.10.1“的经典版本。不确定是不是由它引起的!我需要一些帮助来解决这个问题。也在这里发帖:https://github.com/ember-cli/ember-cli/issues/6293

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

https://stackoverflow.com/questions/41624303

复制
相关文章

相似问题

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