【发布时间】:2010-11-12 23:37:38
【问题描述】:
我们的一堆单元测试在 OS X 上的 Mono 下失败,并出现以下错误:
System.TypeLoadException : 无法从程序集 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 加载类型 'System.Func``2'。
关于有问题的单元测试:
[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。
有人有解决此问题的建议吗?
编辑:
应该指出此错误来自 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
所有测试通过
【问题讨论】:
标签: c# unit-testing mono monodevelop