【发布时间】:2018-11-06 07:57:03
【问题描述】:
我有 Java 开发人员的背景,我可以在我的 SourceCode 中使用断点并运行 UnitTests 来命中它们。我现在在 Angular/Typescript 环境中尝试同样的方法,但我只能在我的测试代码中打断点。
源代码:
1) export class SomeClass {
2) someMethod() {
3)* doit;
4) }
5) }
- 断点未命中
测试代码:
1) describe('SomeClass', () => {
2) it('test someMethod()', () => {
3) SomeClass someClass = new SomeClass();
4)* someClass.someMethod();
5) }
6) }
- 断点命中
我首选的编辑器是 Visual Studio Code,但如果它可以在 IntelliJ/Webstorm IDE 中工作,我也很高兴。
软件包版本是:
- 角 5.2.5
- 茉莉花 2.8.0
- 茉莉花核 2.8.0
- 业力 3.0.0
- 业力铬发射器 2.1.1
- 业力-cli 1.0.1
- 业力茉莉花 1.1.1
【问题讨论】:
-
使用 IntelliJ,您可以放置断点并运行调试模式,这将起作用。否则,您可以在您希望代码停止的地方写
debugger;,最后,在浏览器的开发工具中,您可以打开源代码并直接在其中放置断点(例如在Chrome中,F12,Source选项卡, Ctrl + P 打开想要的文件) -
你试过marketplace.visualstudio.com/…了吗?我很满意。
-
@trichetriche 是的,这适用于 Intellij。不知道为什么我的其他测试在我尝试的时候没有停止在源代码中。我已经使用了浏览器解决方案,但为此您需要一个正在运行的应用程序,我想简单地调试到 UnitTest-Level 上的服务。
-
@ChatterOne 我已经安装了它,但我想在 UnitTest 级别上调试我的服务,而不是在应用程序在 Chrome 中运行时。
-
@CodeChimpy 不,您不需要正在运行的应用程序;测试时,您有一个正在运行的浏览器,可以是休闲浏览器(默认)或无头浏览器。随意的,一个测试应用程序将打开,您将能够在规范和角度文件中放置断点。这就是我调试大多数应用程序的方式,而且我在测试时没有正在运行的应用程序:)
标签: angular unit-testing debugging jasmine