Как отлаживать модульные тесты, использующие среду Microsoft Moles - PullRequest
3 голосов
/ 01 апреля 2011

Наша команда работает над написанием юнит-тестов для проекта .Net. Мы используем интегрированную среду разработки Visual Studio 2010, платформу для модульного тестирования «NUnit» (v. 2.5.9) и платформу для изоляции типов «Microsoft Moles».

Мы столкнулись с проблемой: мы не смогли отладить юнит-тесты, которые используют Moles (в то время как тесты, которые не используют его, отлажены без проблем). Тесты, в которых используются родинки, не выполняются со следующим сообщением об ошибке:

Microsoft.Moles.Framework.Moles.MoleInvalidOperationException: моли требуют, чтобы тесты выполнялись в инструментальном процессе.

У кого-нибудь есть идеи, почему не работает отладка этих тестов?
Заранее спасибо!

1 Ответ

0 голосов
/ 24 апреля 2011

Из руководства кротов:

Монтаж

Microsoft.Moles.NUnit.dll Вам нужно будет зарегистрировать эту надстройку в NUnit, скопировав сборку Microsoft.Moles.NUnit.dll в папку NUnit bin / addins .

NUnit Version

2.5.2.9222 (для других версий NUnit перекомпилируйте атрибут из источников)

Пример использования

using NUnit.Framework; 
using Microsoft.Moles.Framework.NUnit;
[TestFixture]
public class NUnitTest
{
    [Test]
    [Moled] // set up of the mole context around the test case
    public void TestWithMoles() {
        ...
    }

    // alternative not using [Moled]
    [Test]
    public void TestWithMoles() {
        using(MolesContext()) { // clears moles leaving context
            ...
        } 
    }
}

Командная строка

Убедитесь, что вы используете аргумент / domain = None при вызове консоли запуска NUnit.

moles.runner.exe /r:nunit-console.exe /args=”/domain=None” ..
...