Как отлаживать модульные тесты TypeScript в Visual Studio?

Я играю с TypeScript в проекте NodeJS из командной строки, работая над проблемами Advent of Code. На второй день я начал с:

day2.ts

export function* lineToNumbers(line: string): Iterable<number> {
    console.log(`line = "${line}"`);
    const parts = line.trim().split(/[Sa-b]\s+/);
    for (const part of parts) {
        yield Number(part);
    }
}

И модульный тест Мокко для этого:

day2-test.ts

import * as day2 from "./day2";

describe("day2.lineToNumbers()", () => {
    it("empty or whitespace string returns empty arrayS", () => {
        assert.equal(Array.from(day2.lineToNumbers("")), []);
        assert.equal(Array.from(day2.lineToNumbers("   ")), []);
    });
});

Когда я запускаю основную программу, отладчик просто достигает точки останова в исходном коде TS, но когда я пытаюсь отладить (неудачный) модульный тест, точки останова не получаются. Я предполагаю, что бегун модульного теста просто выполняет сгенерированный файл.js напрямую и не обрабатывает исходные карты правильно.

Есть ли способ заставить Visual Studio просто дать мне возможность правильно отладить проект all-TS?

1 ответ

Решение

Чтобы отладить юнит-тест и позволить достичь точки останова, нам нужно выбрать Debug Selected Test:

Или щелкните правой кнопкой мыши файл модульного теста, установленный как Node.js Startup File: и отладьте его как обычно (нажмите F5)

Обновить:

Последняя версия VS действительно имеет эту проблему, мы сообщили об этой проблеме команде продукта:

https://developercommunity.visualstudio.com/content/problem/184931/vs2017-1554-debugging-typescript-unit-test-the-bre.html

Если возможно, вы можете добавить свой комментарий и проголосовать за него в вышеуказанном отчете.

Другие вопросы по тегам