2017-01-12 14 views
0

最近「ember-cli」を「2.10.0」に、「ember-cli-qunit」を「3.0.1」にアップグレードしましたが、各テストモジュールが2回実行されています。しかし、jsbinでコードを試してみると、問題を再現できません。私のテストは次のようになります:Ember qunitテストが2回呼び出されています

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); 
    }); 
} 

私のクイントバージョンは2.1.1で、jqueryバージョンは1.11.3です。

My Index.htmlファイルは次のようになります。

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

test/index.htmlファイルを表示できますか? – jakerella

答えて

0

私のテストで問題が見つかりました。私は、テストを実行するときに送信するクエリパラメータに基づいてロードされる一連のテストを設定しようとしていました。基本的には間違ってやろうとしていました。私のテスト-helper.jsで

、私が追加した:

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(); 
をしかし、その代わりに私がしなければならなかった:

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ヘルパーメソッドを呼び出すときに、今、私は次のエラーを取得しています:

Assertion after the final `assert.async` was resolved 

ので:

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