Stepping through and debugging code in Unit tests

陌路散爱 提交于 2019-11-30 04:11:29
John

When using Microsoft.VisualStudio.TestTools.UnitTesting, go to 'Test' in the main menu of VS 2010, click submenu 'Debug' -> 'tests in current context'.

Right-clicking on the test-code and selecting 'run tests' will never start the debugger, not even when mode = debug.

It's far simpler in VS 2013, in Test Explorer select tests you wish to debug, right-click and choose debug selected tests.

Yes you can, thank you :)

To actually break on them you need to run your unit tests in Debug mode though.

If you were running nunit, that was so easy:

  1. Run nunit and open your desired assembly in it.
  2. Open visual studio -> Debug -> Attach to Process...
  3. Select process of nunit
  4. Put break point in each line you want.
  5. Go back to nunit and run tests
  6. You will see that execution stops at break points

Maybe simply debugging tests and setting breakpoints works in some kinds of Unit tests but it doesn't if you debug e.g. Web service.

To debug a Web Service (break inside a Unit test) you have to insert this code:

System.Diagnostics.Debugger.Break();

This will show a popup saying the application stopped working and you can choose to debug it.

More here: http://msdn.microsoft.com/en-us/library/ms243172.aspx#DebuggingOnCassini

Arfilon

Another solution...

You need to run and attach the debugger

Set this line at the first line executed in your test (maybe in the test class constructor)

System.Diagnostics.Debugger.Launch();

then when debug window open , chose the visual stdio

One option is to install TestDriven.net which makes it easier to run unit tests on any of the major unit testing .net frameworks (nunit, xunit, VS tools, etc). Once installed you can right click on a function and choose Test With --> debugger.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!