Running NUnit tests in Visual Studio 2010 with code coverage

前端 未结 5 1173
甜味超标
甜味超标 2021-02-01 19:20

We have recently upgraded from Visual Studio 2008 to Visual Studio 2010. As part of our code base, we have a very large set of NUnit tests. We would like to be able to run thes

相关标签:
5条回答
  • 2021-02-01 19:41

    Adrian,

    Have a look at TestMatrix - it will run your unit tests, does code coverage and unit test performance profiling - and all of these are natively integrated into Visual Studio.

    0 讨论(0)
  • 2021-02-01 19:53

    The gallio automation framework is an open source project which should allow you to accomplish this. The site is at http://www.gallio.org/ There is initial VS2010 support in the last release with more work on it in the nightly builds.

    There is more information on this here: http://weblogs.asp.net/astopford/archive/2010/04/13/gallio-and-vs2010.aspx

    However, if you have money to spend on this take a look at http://TestDriven.Net

    0 讨论(0)
  • 2021-02-01 19:59

    You can get the VS 2010 code coverage functionality to work while running NUnit tests, but it's a hell of configuration work:

    Set up a generic test that runs the nunit-console-x86.exe like this:

    Does VS2010 Code Coverage support nUnit? (simplified description for xUnit)

    http://msdn.microsoft.com/en-us/library/ms182624(v=vs.100).aspx (general description)

    Make sure:

    • you have "instrument in place" activated. Trusting the deployment of VS won't work
    • you run nunit-console-x86.exe. The 64-Bit version won't work.
    • all libraries that need code coverage results are build into a single folder. Copying them (e.g. by build event) won't work. (For advanced: You can instrument the libraries in another location than their build output folder, but that's quite tricky.)
    • the folder with all libraries is working directory for the generic test and you start NUnit from it.
    • you provide the argument to NUnit as relative path to the working folder.
    • you additionally provide NUnit with the command line option /noshadow

    When you copy your dlls from different folders into a single folder for tests, strange things may happen. I for instance, got the reassurring result that almost all of the code for unit tests is coverred when running the unit tests. What a shame, that code coverage did not find the library tested by the unit tests!

    Well, after setting up all build output directories I ran into the strangest problem: From that folder NUnit does not run. I have it running from 2 separate locations, but here it goes "nunit-console-runner.dll not found".

    I only got it right with instrumenting the tested library at another location via:

    • tests > edit settings > local
    • Data and diagnostics > code coverage
    • deactivate the original location and add the library from the test folder

    Today it worked instantly, but the other day I tried to get the locations right for about an hour. I still don't know what I messed up that day.

    0 讨论(0)
  • 2021-02-01 20:02

    Jetbrains appears to be tackling this issue with a new product called "dotCover". It's still in it's infancy, but given their track record it should be a major player soon.

    Till it releases you can "test" the nightly builds located here.

    0 讨论(0)
  • 2021-02-01 20:02

    I found the Code Coverage Runner project on CodePlex, which bridges the VS test and NUnit APIs via an adapter. As of writing this, the project hasn't been updated since March 2008, but it may suit your needs.

    0 讨论(0)
提交回复
热议问题