如何在Visual Studio中调试TypeScript单元测试?

时间:2018-01-16 10:54:36

标签: visual-studio unit-testing typescript debugging mocha

我在命令行NodeJS项目中使用TypeScript,解决代码问题的问题。第2天,我开始:

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让我正确地调试一个全TS项目?

1 个答案:

答案 0 :(得分:3)

要调试单元测试并让断点命中,我们需要选择调试选择的测试enter image description here

右键单击单元测试文件设置为Node.js启动文件:并正常调试(按F5键)

enter image description here

<强>更新

最新的VS版本确实存在此问题,我们已向产品团队报告此问题:

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

如果可能,您可以添加评论并在上面的报告中投票。