如何在 Visual Studio 中调试 TypeScript 单元测试?
How to debug TypeScript unit tests in Visual Studio?
我正在命令行 NodeJS 项目中使用 TypeScript,解决 Advent of Code 问题。第 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);
}
}
还有一个 Mocha 单元测试:
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 源代码中命中断点,但当我尝试调试(失败的)单元测试时,断点不会命中。我猜单元测试 运行ner 只是直接执行生成的 .js 文件,并没有正确处理源映射。
有没有办法让 Visual Studio 让我正确调试全 TS 项目?
为了调试单元测试并让断点被命中,我们需要选择Debug Selected Test:
或者右键单元测试文件设置为Node.js启动文件:正常调试(按F5)
更新:
最新的VS版本确实存在这个问题,我们已经将这个问题反馈给产品团队:
如果可能的话,您可以在上面的报告中添加您的评论并投票。
我正在命令行 NodeJS 项目中使用 TypeScript,解决 Advent of Code 问题。第 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);
}
}
还有一个 Mocha 单元测试:
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 源代码中命中断点,但当我尝试调试(失败的)单元测试时,断点不会命中。我猜单元测试 运行ner 只是直接执行生成的 .js 文件,并没有正确处理源映射。
有没有办法让 Visual Studio 让我正确调试全 TS 项目?
为了调试单元测试并让断点被命中,我们需要选择Debug Selected Test:
或者右键单元测试文件设置为Node.js启动文件:正常调试(按F5)
更新:
最新的VS版本确实存在这个问题,我们已经将这个问题反馈给产品团队:
如果可能的话,您可以在上面的报告中添加您的评论并投票。