2015-07-21 19 views
6

Ho una riproduzione abbastanza semplice con un risultato che non capisco.Esecuzione di test QUnit (TypeScript) con Chutzpah fornisce "Chiamato start() al di fuori di un contesto di test già avviato"

Assicurarsi di avere installato Chutpah Test Adapter 4.0.3. Utilizzando Visual Studio 2013 procedere come segue:

  1. Creare un nuovo progetto di libreria di classi .NET 4.5.1;
  2. Aggiungere il pacchetto NuGet qunit.TypeScript.DefinitelyTyped 0.1.7;
  3. aggiungere un file dattiloscritto file1.ts al progetto con questo contenuto:

    /// <reference path="./Scripts/typings/qunit/qunit.d.ts"/> 
    QUnit.test("QUnit is working", assert => assert.ok(true)); 
    
  4. tasto destro del mouse all'interno di tale file e scegliere "Test Run JS" dal menu contestuale.

Posso confermare che file1.js viene generato come previsto.

Il risultato è che nessun test vengono eseguiti, l'esploratore test mostra nessun test, e gli spettacoli di uscita di prova:

Error: Error: Called start() outside of a test context while already started 
at start in file:///C:/Users/username/AppData/Local/Microsoft/VisualStudio/12.0/Extensions/abcxyz/TestFiles/QUnit/qunit.js (line 287) 
at startQUnit in phantomjs://webpage.evaluate() (line 12) 
at onPageLoaded in phantomjs://webpage.evaluate() (line 16) 
in phantomjs://webpage.evaluate() (line 18) 
While Running:c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts 
------ Test started: File: c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts ------ 
Error: Error: Called start() outside of a test context while already started 
While Running:c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts 
0 passed, 0 failed, 0 total (chutzpah). 

========== Total Tests: 0 passed, 0 failed, 0 total ========== 

Se scelgo il "Apri nel browser" voce di Chutzpah menu di contesto ho un regolare QUnit pagina di test, ben formattata, che mostra zero test eseguiti.

Ovviamente il risultato previsto era che un test fosse stato eseguito con successo.

Cosa mi manca qui?

risposta

8

D'oh! The Chutzpah + TypeScript documentation è in realtà abbastanza chiaro su questo:

Dovete dire Chutzpah come compilare i file in JavaScript utilizzando l'impostazione nel file chutzpah.json compilazione.

Per lo scenario dalla domanda prendere per es. questi passaggi per farlo funzionare:

  1. Aggiungere un file chutzpah.json alla radice del progetto.
  2. Inserisci il codice seguente:

    { 
        "Compile": { 
         "Mode": "External", 
         "Extensions": [".ts"], 
         "ExtensionsWithNoOutput": [".d.ts"] 
        } 
    } 
    

    Dopo questo la corsa pulsante destro del mouse sarà già migliorare, mostrando:

    ========== Total Tests: 1 passed, 0 failed, 1 total ==========

    Se questo non funziona subito chiude e riapre la soluzione.

  3. Per visualizzare i test nell'Esploratore di test è necessario raggrupparli in moduli, ad es.aggiungendo questo a file1.ts:

    QUnit.module("Qu.Testing"); 
    

Per ulteriori informazioni, vedere la Compile Setting documentation.

Lasciando questo qui gli altri dovrebbero cadere nella stessa trappola che ho fatto.