Заставить MonoDevelop запускать тесты в определенное время выполнения - PullRequest
4 голосов
/ 13 ноября 2010

Куча наших модульных тестов не выполняется под Mono на OS X со следующей ошибкой:

System.TypeLoadException : Could not load type 'System.Func``2' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Один из рассматриваемых модульных тестов:

[Test]
public void CanAuthenticateValidUser()
{
    const string testUsername = "jappleseed";

    var repo = new Mock<IUserRepository>();
    repo.Setup(x => x.GetByUsername(testUsername)).Returns(GetTestUser());

    var authenticator = new Authenticator(repo.Object);
    var result = authenticator.Authenticate(testUsername, "test");

    Assert.That(result, Is.True);
}

Запуск с Mono 2.8, с MonoDevelop 2.4.

Кто-нибудь получил какие-либо предложения, чтобы обойти это?

Edit:

Следует указать, что эта ошибка возникает из-за встроенной команды «Run Tests» на панели «Unit Tests» в MonoDevelop.

Редактировать 2:

Принудительное выполнение в соответствии с предложением jpobst выполняется в консоли. Я предполагаю, что вопрос состоит в том, как заставить MonoDevelop выставлять тесты запуска в определенной структуре?

shimms:Debug shimms$ mono ~/Development/nunit/bin/net-2.0/nunit-console.exe Convergence.Core.Services.Tests.dll

Выдает те же исключения, однако:

shimms:Debug shimms$ mono --runtime=v4.0.30319 ~/Development/nunit/bin/net-2.0/nunit-console.exe Convergence.Core.Services.Tests.dll

Все тесты пройдены

1 Ответ

6 голосов
/ 13 ноября 2010

Нет сборки под названием "mscorelib", это "mscorlib". Это опечатка? Или неработающая ссылка?


Вторая попытка:

Вы уверены, что ваши тесты были скомпилированы для 4.0 (dmcs)?

Вы также можете попробовать переопределить среду выполнения с помощью:

mono --runtime = v4.0.30319 mytests.exe

...