Tìm kiếm trang web

Vấn đề Hiệu năng - Chutzpah Console.exe và TypeScript


Tôi đang gặp phải một số vấn đề về hiệu suất khi cố gắng chạy chutzpah.console.exe với tệp chutzpah.json của mình. Đối với dự án này, tôi đang sử dụng TypeScript và biên dịch trước các tệp TypeScript thành các tệp .js trước khi chạy các bài kiểm tra. Mỗi tệp kiểm tra mà tôi có thường tham chiếu đến một tệp TypeScript khác mà nó phụ thuộc vào - điều này để Visual Studio hoạt động tốt và để các tiện ích mở rộng Chutzpah hoạt động. Ví dụ, tệp drawerBusiness.spec.ts của tôi chứa tham chiếu này:

/// <reference path="../../../../app/business/documents/drawerBusiness.ts"/>

Tệp chutzpah.json của tôi như sau:

{
  "Compile": {
    "Mode": "External",
    "Extensions": [ ".ts" ],
    "ExtensionsWithNoOutput": [ ".d.ts" ]
  },
  "Framework": "jasmine",
  "TestHarnessReferenceMode": "Normal",
  "TestHarnessLocationMode": "SettingsFileAdjacent",
  "References": [
    { "Path": "./lib/jquery/jquery.js" },
    { "Path": "./lib/angular/angular.js" },
    { "Path": "./lib/angular-mocks/angular-mocks.js" },
    { "Path": "./lib/jasmine-jquery/jasmine-jquery.js" },
    { "Path": "./lib/underscore/underscore.js" },
    { "Path": "./lib/angular-bootstrap/ui-bootstrap-tpls.js" },
    { "Path": "./tests/dependencies.js" }
  ],
  "Tests": [
    { "Include": "*/tests/specs/*.ts", "ExpandReferenceComments":  "true" }
  ]
}

Như bạn có thể thấy từ trên, tôi cần tải một số thư viện bên ngoài. Tôi đoán những thư viện này sẽ được tải một lần và sau đó được sử dụng cho mỗi bài kiểm tra?

Khi tôi sử dụng JavaScript thuần, cấu hình này chạy cực kỳ nhanh. Nó hoàn thành khá nhanh trong Visual Studio và khi chạy các bài kiểm tra từ chutzpah.console.exe. Tuy nhiên, kể từ khi tôi chuyển sang Chutzpah, các bài kiểm tra trở nên chậm hơn nhiều:

Tests complete: 263
=== 263 total, 0 failed, took 74.64 seconds ===

Những kết quả này còn tệ hơn trên máy xây dựng của chúng tôi, và nó đang bị hết thời gian. Dường như có một độ trễ rất lớn giữa mỗi tệp spec được chạy, và tôi nghĩ điều đó đang gây ra sự chậm chạp tổng thể - một khi tệp spec bắt đầu chạy, nó hoàn thành trong vài phần trăm của một giây. Có ai có ý tưởng gì về việc điều gì có thể được cấu hình sai không?

Câu trả lời #1

Dưới đây là một vài điều bạn có thể thử để giúp tìm ra nguyên nhân của vấn đề này:

  1. Bạn có thể thử bật "EnableTestFileBatching": true trong tệp chutzpah.json của bạn để xem nó có giúp gì không? Có thể sẽ chậm nếu bạn có NHIỀU tệp kiểm thử và cài đặt này nói với chutzpah để gom chúng lại thành một bộ kiểm thử.

  2. Bạn có thể cung cấp kết quả của tùy chọn /trace để tôi có thể xem tất cả các thời gian không?

  3. Bạn có thể cung cấp một bản sao mà tôi có thể chạy cục bộ không?