2017-01-12 1 views
0

Ich habe vor kurzem mein "ember-cli" auf "2.10.0" und "ember-cli-qunit" auf "3.0.1" aktualisiert, aber jedes Testmodul wird zweimal ausgeführt. Wenn ich jedoch den Code in Jsbin ausprobiere, kann ich das Problem nicht wiederherstellen. Mein Test wie folgt aussieht:Ember qunit Tests werden zweimal aufgerufen

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

ich sehe, dass meine Quint Version ist 2.1.1 und jQuery-Version ist 1.11.3.

Meine Index.html Datei sieht so aus;

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

Können Sie Ihre test/index.html Datei anzeigen? – jakerella

Antwort

0

Ich habe das Problem mit meinem Test gefunden. Ich habe versucht, die Testgruppe zu konfigurieren, die basierend auf einem Abfrageparameter geladen wurde, den ich beim Ausführen der Tests sendete. Die Art und Weise, wie ich das versucht habe, ist grundsätzlich falsch.

In meinem Test-helper.js hatte ich hinzugefügt:

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

Aber stattdessen hatte ich zu tun:

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

Aber jetzt bin ich immer Fehler folgende wenn andthen Helfer-Methode aufrufen:

Assertion after the final `assert.async` was resolved 

So:

//THIS FAILS(BUT USED TO WORK BEFORE QUINT UPGRADE) 
test("DUMMY TEST 2", function (assert) { 
    clickSomeElement(); 
    andThen(()=> { 
     assert.equal(1, 1); 
    }); 
}); 

Ich benutze wirklich klassische Version von Ember "1.10.1". Nicht sicher, ob es dadurch verursacht wurde! Könnte helfen, es zu lösen. Auch hier gepostet: https://github.com/ember-cli/ember-cli/issues/6293

Verwandte Themen