调试Silverlight和Silverlight单元测试

4
我在调试Silverlight和Silverlight单元测试时遇到了问题。
首先让我们谈谈如何调试Silverlight。我的Silverlight项目在项目属性中已勾选了“silverlight”调试器,所以我不太明白为什么有时可以正常调试并在我的视图模型类中设置断点,而有时却不行。其他人是否也遇到了这个问题?
接下来是调试单元测试。我使用了Silverlight单元测试框架,因此测试在浏览器中运行。我应该如何调试这些测试?我一直在盲目编写测试,这还好,直到事情变得复杂起来。
例如,在经典的单元测试中,您只需设置断点即可。或者您可以使用Console.WriteLine。最起码,当Silverlight单元测试正在运行时,我需要能够将某些调试信息写入网页。
谢谢。

+1 对于调试问题非常重要。我在项目中已经有一段时间无法进行调试了。 - t3rse
1
我只是想说一下,我之前在使用Chrome浏览器。现在我切换到IE浏览器,我认为它可以正常工作,甚至可以调试单元测试! - peter
我很想知道其他人使用的浏览器是什么,以及是否会导致任何问题。 - peter
我使用Chrome,IE和Firefox进行所有测试。我可以使用下面的解决方法在它们中进行调试。 - Jeff Yates
2个回答

3

调试Silverlight

在多进程浏览器中进行调试可能会很麻烦。你通常需要在开始调试后手动附加调试器,因为Visual Studio启动的进程不是Silverlight插件正在运行的进程。

只需在以调试模式启动应用程序后使用Debug-->Attach to process...即可完成此操作。我从未遇到过使用此方法无法进行调试的情况。

我还在这里发表了关于这个多进程浏览器Silverlight调试问题的帖子。

注意:多进程浏览器包括Chrome、IE8和Firefox 3.5,尽管IE8在工作时会做一些奇怪的事情来解决多进程问题。

反馈报告

我还没有尝试过这个方法,但这篇有用的博客介绍了如何为Silverlight提供崩溃处理。它可能会让你了解如何操纵你的HTML页面,在单元测试时提供跟踪式日志记录。


感谢您的回答 - 解决了我的SL调试问题。 - mackenir

3

对于一般的调试,当您使用“附加到进程”时,请确保在“附加到”字段中选择了“Silverlight代码”。

要使用Silverlight单元测试框架进行调试,您需要打开托管单元测试页面的Web项目的项目属性。选择“Web”选项卡,并确保底部的Debuggers部分中选择了Silverlight选项。

确保将Web项目设置为启动项目,将适当的测试页面设置为起始页。

当您F5解决方案时,断点应该能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接