【发布时间】:2016-04-06 15:34:17
【问题描述】:
问题
Locals 在调试时只显示this 变量,其他局部变量在Locals 或Watch 中不可用,但可以在中间窗口 中重新计算在 Visual Studio 中
简介
我正在为我正在编写的一些代码调试 Xunit 测试。我正在测试的库以 ASP.NET Core RC1 为目标。这是我的project.json:
{
"authors": [ "Matthew Abbott" ],
"commands": {
"test": "xunit.runner.dnx"
},
"description": "Provides tests for the Fx.Content.Composer package",
"dependencies": {
"xunit": "2.1.0-rc1-build3168",
"xunit.runner.dnx": "2.1.0-rc1-build204",
"Fx.Content.Composer": ""
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"System.Runtime": "4.0.21-beta-23516"
}
}
},
"licenseUrl": "",
"projectUrl": "",
"tags": [ "" ],
"version": "1.0.0-*"
}
在调试单元测试时(我正在使用 Visual Studio 的内置测试功能),我可以设置断点,但 Locals/Watch 窗口不允许我检查局部变量声明。我也没有得到那些局部变量的变量工具提示。
如果我将我的语句复制并粘贴到 Intermediate 中,它们会被添加到作用域中,但我无法立即轻松调试。
我尝试过的事情
- 确保我在调试模式下编译
- 禁用 JIT 优化
- 重置我的 Visual Studio 设置
注意事项
- 我最近安装了 Visual Studio 2015 Update 2
- 我已经多次重启 IDE 都没有成功
- 我已经多次重启了我的机器,但都没有成功
- 未明确绑定到单元测试调试会话 - 当我按 F5 运行时,它们也会在那里失败
任何帮助将不胜感激!
更新 根据 Victor 的评论,我尝试从该单元测试逐步进入一个方法,最初一个参数在范围内可用,但进一步定义的变量不可用。
【问题讨论】:
-
我以前见过这个。在我的例子中,只有第一个断点被击中的方法缺少本地人。如果我采取另一种方法,当地人就会出现。如果是这种情况,那么您可能必须重新安装 VS - 这对我有用
-
@VictorHurdugaci 我尝试单步执行一个方法,最初我的参数在 Locals 中可用,但如果我单步执行,则本地声明不可用。我附上了更新的屏幕截图
-
在调试或发布时运行?
-
如上所述 - 我一直在检查我是否处于调试模式。只需重新安装 VS 并查看是否可以解决它...
-
重新安装没有解决问题:-/
标签: debugging visual-studio-2015 asp.net-core dnx xunit