2015-07-21 11 views
6

Tôi đã có một bản repro khá đơn giản với kết quả mà tôi không hiểu.Chạy thử nghiệm QUnit (TypeScript) với Chutzpah cho phép "Bắt đầu được gọi() bên ngoài ngữ cảnh thử nghiệm khi đã bắt đầu"

Đảm bảo bạn đã cài đặt Bộ kiểm tra Chutpah Test Adapter 4.0.3. Sử dụng Visual Studio 2013 thực hiện các bước sau:

  1. Tạo dự án thư viện lớp .NET 4.5.1 mới;
  2. Thêm gói NuGet qunit.TypeScript.DefinitelyTyped 0.1.7;
  3. Thêm một tập tin typescript file1.ts cho dự án với nội dung này:

    /// <reference path="./Scripts/typings/qunit/qunit.d.ts"/> 
    QUnit.test("QUnit is working", assert => assert.ok(true)); 
    
  4. Kích chuột phải vào bên trong tập tin đó và chọn "Run thử nghiệm JS" từ menu ngữ cảnh.

Tôi có thể xác nhận rằng file1.js được tạo như mong đợi.

Kết quả là không kiểm tra được điều hành, kiểm tra explorer cho thấy không có bài kiểm tra, và các thử nghiệm cho thấy sản lượng:

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

Nếu tôi chọn "Open in browser" sự gan dạ mục menu ngữ cảnh tôi nhận được một thông thường Trang kiểm tra QUnit, được định dạng tốt, cho thấy chạy thử nghiệm không.

Rõ ràng kết quả mong đợi là một thử nghiệm đã được chạy thành công.

Tôi thiếu gì ở đây?

Trả lời

8

D'oh! The Chutzpah + TypeScript documentation thực sự là khá rõ ràng về vấn đề này:

Bạn cần phải nói với sự gan dạ như thế nào để biên dịch tập tin của bạn vào JavaScript sử dụng các thiết lập trong file chutzpah.json biên dịch.

Đối với kịch bản từ câu hỏi, ví dụ: các bước sau để làm cho nó hoạt động:

  1. Thêm một tệp chutzpah.json vào gốc của dự án của bạn.
  2. Nhập đoạn mã sau:

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

    Sau này chạy nhấp chuột phải sẽ đã cải thiện, cho thấy:

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

    Nếu điều này không làm việc ngay lập tức đóng và mở lại giải pháp.

  3. Để các bài kiểm tra hiển thị trong Trình khám phá kiểm tra, bạn cần nhóm chúng vào các mô-đun, ví dụ:bằng cách thêm này để file1.ts:

    QUnit.module("Qu.Testing"); 
    

Mọi chi tiết, xem các Compile Setting documentation.

Rời bỏ điều này ở đây nếu người khác rơi vào cùng một cái bẫy tôi đã làm.

Các vấn đề liên quan