Debug and analyze unit tests by using Test Explorer
You can use Test Explorer to start a debugging session for your tests. Stepping through your code with the Visual Studio debugger seamlessly takes you back and forth between the unit tests and the project under test.
To start debugging:
In the Visual Studio editor, set a breakpoint in one or more test methods that you want to debug.
Note
Because test methods can run in any order, set breakpoints in all the test methods that you want to debug.
In Test Explorer, select the test methods, right-click somewhere on the pane, and then select Debug.
For more information about the debugger, see Debug in Visual Studio.
Diagnose performance problems with a test method
Starting in Visual Studio 2022 version 17.8, you can use any applicable tool in the Performance Profiler to help improve your code, and not just the Instrumentation tool. You can profile small units of work in isolation, make changes, and then remeasure and validate the impact of the changes.
To diagnose why a test method is taking more time than you'd like, or using more memory than you'd like:
- Right-click the method in Test Explorer, and then select Profile.
- In the Performance Profiler, select a profiling tool to test your code.
For more information, see this blog post or see Collect profiling data without debugging.
To diagnose why a test method is taking too much time:
- Right-click the method in Test Explorer, and then select Profile.
For more information, see Instrumentation profiling report.
Note
This feature is not currently supported for .NET Core.
Get AI assistance to debug tests
Starting in Visual Studio 2022 version 17.12 Preview 2, you can get quick assistance from GitHub Copilot to debug tests if you have an active Copilot subscription. To get help, right-click a failed test in Test Explorer, and then select of the following commands:
- Explain failure with Copilot
- Debug with Copilot
If you debug with GitHub Copilot:
- It provides you with a debug plan.
- It sets appropriate breakpoints and watch variables.
- It starts the debug session.
When the debugger hits the breakpoint, it provides GitHub Copilot with values for the watched variables. Copilot then determines your next step: either continue debugging or fix the problem code. You can continue the Copilot Chat conversation until you have a passing test.