javascript - Att köra QUnit (TypeScript) tester med Chutzpah ger "Called start() outside of a test context while already started"
Jag har en ganska enkel reproduktion med ett resultat jag inte förstår.
Se till att du har Chutpah Test Adapter 4.0.3 installerad. Använd Visual Studio 2013 och följ följande steg:
- Skapa ett nytt .NET 4.5.1-klassbiblioteksprojekt;
- Lägg till NuGet-paketet
qunit.TypeScript.DefinitelyTyped0.1.7; Lägg till en TypeScript-fil
file1.tsi projektet med detta innehåll:/// <reference path="./Scripts/typings/qunit/qunit.d.ts"/> QUnit.test("QUnit is working", assert => assert.ok(true));Högerklicka inne i den filen och välj "Kör JS-tester" från snabbmenyn.
Jag kan bekräfta att file1.js genereras som förväntat.
Resultatet är att inga tester körs, testutforskaren visar inga tester och Testutdata visar:
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 ==========
Om jag väljer "Öppna i webbläsare" Chutzpah-kontekstmenyalternativet får jag en vanlig QUnit-test sida, snyggt formaterad, som visar att inga tester har körts.
Uppenbarligen var det förväntade resultatet att ett test kördes framgångsrikt.
Vad missar jag här?
Svar #1
D'oh! Chutzpah + TypeScript-dokumentationen är faktiskt ganska tydlig om detta:
Du behöver tala om för Chutzpah hur du ska kompilera dina filer till JavaScript med hjälp av kompilationsinställningen i chutzpah.json-filen.
För scenariot från frågan, ta till exempel dessa steg för att få det att fungera:
- Lägg till en
chutzpah.json-fil i roten av ditt projekt. Ange följande kod:
{ "Compile": { "Mode": "External", "Extensions": [".ts"], "ExtensionsWithNoOutput": [".d.ts"] } }Efter detta kommer högerklicks-körningen redan att förbättras och visa:
========== Total Tests: 1 passed, 0 failed, 1 total ==========Om detta inte fungerar omedelbart stäng och öppna lösningen igen.
För att få testerna att visas i Test Explorer behöver du gruppera dem i moduler, t.ex. genom att lägga till detta i
file1.ts:QUnit.module("Qu.Testing");
För mer information, se dokumentationen för kompileringens inställningar.
Lämnar detta uppe här ifall andra skulle falla i samma fälla som jag gjorde.
